私はこの必要性に何度か遭遇しましたが、さまざまな圧縮タイプのファイルを連結するための「最良の」方法を見つけるのがどれほど困難であったかに驚いています。
たとえば、ファイルcontent1
、content2.bz2
、およびを含むディレクトリがありますcontent3.gz
。すべてのファイルに対して同じ操作を実行したい場合は、最初に圧縮を確認して正しく解凍し、解凍してから操作を実行する必要があります。
それ以来、連結を「スマート」な方法で処理するスクリプトを作成しました。
#! /bin/bash
# Smart Cat
# usage smcat <file|file*>
for file in $@; do
end=${file##*.}
if [[ $end == 'bz2' ]] ; then
bzcat $file
elif [[ $end == 'gz' ]] ; then
gzcat $file
else
cat $file
fi
done
さまざまな圧縮タイプをすべて処理する方法が組み込まれていないのはばかげているようです。それともありますが、まだ見つけていませんか?みんな助けてくれてありがとう!