grep -f压缩文件夹中的文件

yonetpkbji:

我有一个问题,我希望有人能够为您提供帮助...

我正在其中一个程序中使用以下命令对压缩文件夹执行递归fgrep / grep -f搜索:

我正在使用的命令

grep -r -i -z -I -f /path/to/pattern/file /home/folder/TestZipFolder.zip

模式文件内是我要搜索的字符串“ Dog”。

在压缩文件夹中,有许多包含字符串“ Dog”的文本文件。

grep -f命令成功在压缩文件夹内的3个文件中找到包含字符串“ Dog”的文本文件,但它将输出全部打印在一行上,并且一些奇怪的字符出现在末尾,即PK(如下所示)。当我尝试将输出打印到程序中的文件时,其他字符出现在末尾,例如^B^T^@

grep -f命令的输出:

TestZipFolder/test.txtThis is a file containing the string DogPKtest1.txtDog, is found again in this file.PKTestZipFolder/another.txtDog is written in this file.PK 

我如何将找到字符串“ Dog”的每个文件打印在新行上,以使它们不会像现在一样全部分组在一行上?另外输出中出现“ PK”和其他奇怪字符的地方,如何防止它们出现?

所需的输出

TestZipFolder/test.txt:This is a file containing the string Dog
TestZipFolder/test1.txt:Dog, is found again in this file
TestZipFolder/another.txt:Dog is written in this file

遵循这些原则,用户可以看到在文件中可以找到字符串的位置(如果在不是zip文件的文件上运行grep命令,则实际上会以这种格式获得输出)。

非常感谢您的帮助,谢谢

blackSmith:

如果需要多行输出,最好使用zipgrep

zipgrep -s "pattern" TestZipFolder.zip

-s是抑制错误消息(可选)。此命令将打印所有匹配的行以及文件名。如果要删除重复的名称,则当文件中有多个匹配项时,必须使用loops / grep或awk或sed进行其他一些处理。

实际上,zipgrepegrepunzip的组合其用法如下:

zipgrep [egrep_options] pattern file[.zip] [file(s) ...] [-x xfile(s) ...]

因此您可以将任何egrep选项传递给它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章