我正在寻找可以在 tar.gz 存档中包含的特定文件中执行 grep 操作的命令。
例子:
文件:archive.tar.gz,其中 ? 包含:
fileA.txt
fileB.txt
fileC.txt
Run Code Online (Sandbox Code Playgroud)
我只想在 fileA.txt 中 grep 而不是在其他两个中,而不从原始存档中提取文件,只有一个命令。
是否可以?
我试过了:
for f in /path/*.gz; do
tar -xzf "$f" --to-command='grep -Hn --label="$TAR_ARCHIVE/$TAR_FILENAME" pattern || true'
done
Run Code Online (Sandbox Code Playgroud)
此命令在存档中包含的所有文件中执行 grep,但这并不是我所需要的。我需要一个仅在我要搜索的文件中搜索的命令。
Ste*_*itt 17
告诉tar
它应该在存档中处理哪个文件:
for f in /path/*.gz; do
tar -xzf "$f" --to-command='grep -Hn --label="$TAR_ARCHIVE/$TAR_FILENAME" pattern || true' fileA.txt
done
Run Code Online (Sandbox Code Playgroud)
(fileA.txt
在tar
命令的末尾)。