![grep 在文件中搜索单词,并给出包含该单词的 ZIPfile 名称的结果](https://linux22.com/image/1158207/grep%20%E5%9C%A8%E6%96%87%E4%BB%B6%E4%B8%AD%E6%90%9C%E7%B4%A2%E5%8D%95%E8%AF%8D%EF%BC%8C%E5%B9%B6%E7%BB%99%E5%87%BA%E5%8C%85%E5%90%AB%E8%AF%A5%E5%8D%95%E8%AF%8D%E7%9A%84%20ZIPfile%20%E5%90%8D%E7%A7%B0%E7%9A%84%E7%BB%93%E6%9E%9C%20.png)
这是我正在做的事情:我想要找到哪些 zip 文件包含这个数字以及数字本身,例如我希望结果如下:
7505857289 AIRCDR
其中数字是我的搜索结果,并且AIRCDR
是 100000 个文件中包含此数字的 zipfilename
答案1
根据您的评论,您搜索的“大海捞针”是一组G压缩文本文件(基于文件扩展名.gz
)。您可以使用zgrep
命令,它是命令的包装器grep
,可动态解压缩 gzip 文件,并支持与其grep
自身相同的大多数选项。
因此你可以简单地运行
zgrep -oHe 7505857289 <FILES>...
它将打印源文件的名称,后跟冒号和每个匹配的匹配字符序列。
如果您需要特定的输出格式,我建议您对其进行转换。对于匹配文本后跟空格和源文件名,则为:
zgrep ... | sed -re 's/^([^:]*):(.*)$/\2 \1/'