解凍せずにtar.gzで特定のファイルを見つける方法は?

解凍せずにtar.gzで特定のファイルを見つける方法は?

tar.gzアーカイブに含まれる特定のファイルに対してgrep操作を実行できるコマンドを探しています。

例:

ファイル:archive.tar.gz、これには以下が含まれます。

fileA.txt
fileB.txt
fileC.txt

元のアーカイブからファイルを抽出せずに、1つのコマンドで他の2つではなくfileA.txtからのみgrepしたいと思います。

可能ですか?

私は試した:

for f in /path/*.gz; do
    tar -xzf "$f" --to-command='grep -Hn --label="$TAR_ARCHIVE/$TAR_FILENAME" pattern || true'
done

このコマンドは、アーカイブに含まれるすべてのファイルに対してgrepを実行しますが、まったく必要ではありません。検索したいファイルだけをgrepするコマンドが必要です。

ベストアンサー1

tarアーカイブでどのファイルを処理する必要があるかを教えてください。

for f in /path/*.gz; do
  tar -xzf "$f" --to-command='grep -Hn --label="$TAR_ARCHIVE/$TAR_FILENAME" pattern || true' fileA.txt
done

fileA.txtコマンドの最後でtar)。

おすすめ記事