linux – grep -f对压缩文件夹中的文件

linux – grep -f对压缩文件夹中的文件,第1张

概述我有一个问题,我希望有人能帮助… 我在我的一个程序中使用以下命令在压缩文件夹上执行递归fgrep / grep -f搜索: 我正在使用的命令 grep -r -i -z -I -f /path/to/pattern/file /home/folder/TestZipFolder.zip 在模式文件中是我想要搜索的字符串“Dog”. 在压缩文件夹中有许多包含字符串“Dog”的文本文件. grep - 我有一个问题,我希望有人能帮助…

我在我的一个程序中使用以下命令在压缩文件夹上执行递归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 DogTestZipFolder/test1.txt:Dog,is found again in this fileTestZipFolder/another.txt:Dog is written in this file

沿着这些方向的东西,用户可以看到文件中可以找到字符串的位置(如果在不是zip文件的文件上运行grep命令,则实际上以这种格式获得输出).

非常感谢您对此的帮助,谢谢

解决方法 如果您需要多行输出,请更好地使用zipgrep:
zipgrep -s "pattern" TestZipFolder.zip

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

实际上,zipgrep是egrep和unzip的组合.它的用法如下:

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

所以你可以传递任何egrep选项.

总结

以上是内存溢出为你收集整理的linux – grep -f对压缩文件夹中的文件全部内容,希望文章能够帮你解决linux – grep -f对压缩文件夹中的文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1033399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存