从多个 .tar.gz 文件中的同一文件中提取字符串

0 grep archive search

我有多个 *.tar.gz 文件。它们都包含文件名为 a、b 和 c 的文件。有没有办法只从这些多个 *.tar.gz 文件下的文件 b 中 grep 字符串 'foo' 而不提取文件。

use*_*274 6

假设“不提取”是指“不将提取的文件保存到磁盘”:

for file in *.tar.gz ; do
    tar xzOf $file b | grep --label=$file/b -H foo
done
Run Code Online (Sandbox Code Playgroud)

焦油选项:

x提取物
z提取之前gunzip解
O转储到标准输出,而不是创建文件(大写字母哦,不是数字零)
f从指定的tar文件

grep 选项(由 JJoao 建议)

--label=...使用指定的标签作为
-H每个匹配的文件名打印文件名