*.tar.gz ファイルが複数あります。それらはすべてa、b、cという名前のファイルを含みます。ファイルを抽出せずに複数の* .tar.gzファイルの下にあるファイルbからのみ文字列 "foo"をgrepする方法はありますか?
ベストアンサー1
「抽出しない」とは、「抽出したファイルをディスクに保存しない」を意味すると仮定する。
for file in *.tar.gz ; do
tar xzOf $file b | grep --label=$file/b -H foo
done
タールオプション:
x
指定された tar ファイルからファイルを生成するのではなく、標準出力にダンプを抽出する前に
z
gunzip を抽出します(数値ゼロ以外の大文字).
O
f
grepオプション(JJoaoが提案)
--label=...
指定されたタグをファイル名として使用して、
-H
一致する各ファイル名を印刷します。