与えられたtar.gzファイルの下のいくつかのファイルから与えられた文字列を検索し、特定のファイル名と共にその文字列にwc -lを提供できるコマンド/スクリプトを探しています。
以下を試しましたが、結果は出ません。
tar -zxf /home/myname/April/maillogs.tar.gz
for f in /home/myname/April/*; do
grep -l "sent" $f |wc -l
done
ベストアンサー1
コメントですでに述べたように、単一のコマンドzgrep
でこれを実行できます。
zgrep -c "sent" /home/myname/April/*.tar.gz
grep
マニュアルから:
-c, --count
通常の出力を抑制します。代わりに、各入力ファイルに対して一致する行数を印刷します。 -v、--invert-matchオプション(以下を参照)を使用して、一致しない行数を数えます。 (-c は POSIX で指定されます.)