Grep 似乎不适合我

Grep 似乎不适合我

命令:

LC_ALL=C fgrep -f /root/inputfile.txt *.txt > outputfile.txt

输入文件包含此类内容;

-name1:
-name2:
-othername:

*.txt(多个文件)包含诸如

-name:email@email:d-o-b::alias

当我从输入文件中 grep 一个小的名称列表时,有些存在于 中*.txt,有些则不存在。我得到其他错误结果。

000_na_name_000:493982:[email protected]:2000-01-05:XX:X:123.123:alias

输入中绝对没有任何内容会导致这些错误结果,而且这样的结果有很多。

答案1

从问题中的示例来看,关于fgrep.

看起来错误的是 grep - 如果outputfile.txt以前存在 - 可能会再次搜索它自己的输出,具体取决于缓冲区大小和输入大小。如果outputfile.txt之前不存在,则似乎*.txt不会匹配它,因为在匹配时它不存在。

它看起来并不像您的问题的原因,但值得测试outputfile.txt存储在其他地方时会发生什么。


如果不是这样,你能做什么?
在评论中,您展示了inputfile.txt导致问题的示例。

我认为问题是由该文件中的一行或多行引起的 - 当与相同的*.txt文件一起使用时。
要找出哪些行有问题,您可以执行以下操作二分查找对于线条:您删除一半的线条,然后尝试它是否有效。如果问题消失,则使用已删除的行继续,否则使用剩余的行。现在,您重复该操作,直到只剩下一行或几行 - 此时您可能已经可以看到原因了。

相关内容