grep は tar の下の複数のファイルから文字列を探し、wc -l を出力します。

grep は tar の下の複数のファイルから文字列を探し、wc -l を出力します。

与えられた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 で指定されます.)

おすすめ記事