使用bash获取.gz文件中目录(包括子目录)中所有出现的字符串?

时间:2017-10-10 08:41:03

标签: bash shell find zgrep

我想在具有子目录的目录中找到所有出现的“getId”,如下所示:

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

我试过this找-name * myfile.gz -print0 | xargs -0 zgrep -i“getId”但它没有用。能有人告诉我最好最简单的方法吗?

2 个答案:

答案 0 :(得分:1)

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

find允许你使用“-exe”对文件执行命令,并用文件名替换“{}”,你用“\;”终止命令

我在zgrep中添加了“-H”,因此当它有匹配时它也打印出文件路径,因为它很有帮助。 “-a”将二进制文件视为文本(因为您可能会获得tar目标gzip文件)

最后,如果bash开始使用它们,最好引用你的字符串。

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

答案 1 :(得分:0)

使用以下查找方法:

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

这将打印包含getSORByID子串

的所有可能行