我有一个问题,我希望有人能够帮助解决...
我在我的一个程序中使用以下命令对压缩文件夹执行递归 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 命令,您实际上会以这种格式获得输出)。
非常感谢您的帮助,谢谢