2017-10-10 63 views
1

我想找到“getSORByID”的所有匹配具有子目录如下的目录里面:使用bash在.gz文件中的目录(包括子目录)中获取所有出现的字符串?

*/*/*/*/*/*/myfile.gz 

我试图找到this -name * myfile.gz -print0 | xargs -0 zgrep -i“getSorById”但它没有工作。任何人都可以告诉我最好和最简单的方法来得到这个?

+0

你得到什么错误?还需要添加目录。 try :: find。 -name“myFile.gz”-type f -exec zgrep -i getSorById {} \;在某些情况下,如果您只想打印具有该关键字的文件,请使用grep -il,则可能必须使用gzgrep –

+0

。同样,如果这是你所要求的,你可以使用grep -ril“keyword”* –

+0

@abhishekphukan它没有给出预期的结果,尽管它没有抛出任何错误。 –

回答

0

使用以下找到方法:

find . -name *myfile.gz -exec zgrep -ai 'getSORByID' {} \; 

这将打印包含getSORByID

0
find ./ -name '*gz' -exec zgrep -aiH 'getSorById' {} \; 

查找允许您使用来执行对文件的命令所有可能行“-exe”并用文件名替换“{}”,则以“\;”结束命令

我在zgrep中加了一个“-H”,所以当它匹配时它也会打印出文件路径,因为它很有帮助。 “-a”将二进制文件视为文本(因为您可能会得到tar格式的gzip文件)

最后,最好引用您的字符串以防bash开始使用它们。

https://linux.die.net/man/1/grep https://linux.die.net/man/1/find

相关问题