2017-03-27 99 views
0

基本上我有.bz2.gz.bz2文件,其中提取提供了一個.bz2.gz文件,並再次提取給出.bz2文件。在這個.bz2文件中,我想用grep命令搜索我的txt文件。我搜索了這個,但我得到了bzgrep命令,它只會搜索bz2文件而不是相應的.gz.bz2文件,並且不會給我任何結果。如何使用grep命令在.bz2.gz.bz2文件中搜索?

在unix系統中有一個命令,它將在壓縮歸檔中遞歸搜索壓縮歸檔,並僅當它在其中找到txt文件時返回結果?

P.S:文檔中的txt文件可能會深入到10級以下。我希望命令遞歸地找到txt文件並搜索所需的字符串。在txt文件級別之前,除了歸檔文件外,沒有其他文件存在。

+1

真的不知道什麼是點有'.bz2.gz.bz2'文件... – jm666

+0

不,這種奇怪的情況沒有工具。我認爲除了分析文件的循環之外沒有別的辦法;如果它被壓縮解壓縮的話,如果它不是grep就可以了。如果可靠,分析可以在文件名上完成。 – linuxfan

回答

-1

Thnx分享您的問題。

有它幾個奇怪的事情,但:

  • 這是沒有意義的有.bz2.gz.bz2文件,所以你創造了這個文件?如果是這樣,我建議你以這種方式重新考慮這樣做。

  • 此外,你提到有一個.bz2,顯然會包含不同的檔案,但一個.bz2只能包含一個設計的單個文件。因此,如果它包含檔案,它可能是一個.tar.bz2文件,其中tar文件包含實際的檔案。

在回答你的問題,你爲什麼不能寫一個簡單的shell腳本,將解壓您的.bz2.gz.bz2.bz2.gz,然後進入一個.bz2文件,然後這個文件的執行你的命令bzgrep?

我不明白的地方正是你似乎被卡住..

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`