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

标签 bash shell find zgrep

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

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

我试过this查找 -name *myfile.gz -print0 | xargs -0 zgrep -i "getId"但它不起作用。谁能告诉我最好和最简单的方法来实现这个?

最佳答案

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

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

我在 zgrep 中添加了“-H”,这样它在匹配时也会打印出文件路径,因为它很有帮助。 “-a”将二进制文件视为文本(因为您可能会得到 tar 压缩的文件)

最后,最好引用你的字符串,以防 bash 开始通配它们。

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

关于bash - 使用bash获取.gz文件中目录(包括子目录)中所有出现的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46662224/

相关文章:

linux - awk,不清楚 gnu-awk 网站示例中的片段

linux - 检查字体是否等宽

linux - Bash 脚本响应控制台输出?

bash - 在 Solaris 上的 awk 中使用多字符字段分隔符

linux - 将 Find 命令的输出附加到 Bash 脚本中的变量

bash - 为什么在可执行文件或脚本名称之前需要 ./(点斜杠)才能在 bash 中运行它?

linux - read -p 与2>/dev/null 组合时不提示字符串,这是为什么呢?

java - 包装应用程序以在 Ubuntu Linux 中创建 sh 文件

linux - bash 中的对话框没有正确获取变量

regex - 如何使用正则表达式将 Visual Studio 二进制编辑器中的空字节 (0x00) 与查找匹配?