如何使用grep命令搜索.bz2.gz.bz2文件?

时间:2017-03-27 09:04:26

标签: shell unix command-line terminal

基本上我有.bz2.gz.bz2文件,在提取时给出一个.bz2.gz文件,然后再次提取给出.bz2文件。在这个.bz2文件中,是我想要使用grep命令搜索的txt文件。我已经搜索了这个但是我得到了bzgrep命令,它只搜索bz2文件,而不是相应的.gz.bz2文件并且没有给我任何结果。

在unix系统中是否有一个命令会递归搜索压缩存档中的zipped存档并仅在找到txt文件时返回结果?

P.S:txt文件可能在存档深处达到最高10级。我希望命令以递归方式查找txt文件并搜索所需的字符串。除了txt文件级别之外,存档中只有一个存档。

2 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解但也许这会有所帮助:

for i in /path/to/each/*.tar.bz2; do 
tar -xvjf "$i" -C /path/to/save/in
rm $i
done

extract all `tar.bz2` and save them in directory then remove the `.bz2`

答案 1 :(得分:-1)

Thnx用于分享您的问题。

但是有一些奇怪的事情:

  • 拥有.bz2.gz.bz2文件是没有意义的,所以你自己创建了这个文件吗?如果是这样,我建议你以这种方式重新考虑这样做。

  • 另外,您提到有.bz2显然包含不同的档案,但.bz2只能包含一个设计的文件。因此,如果它包含存档,则可能是.tar.bz2文件,其中tar文件包含实际存档。

在回答您的问题时,为什么不能编写一个简单的shell脚本,将.bz2.gz.bz2解压缩到.bz2.gz然后解压缩到.bz2文件然后执行bzgrep命令对该文件?

我不明白你到底在哪里被困......