模式文件 grep 的输出是否取决于模式文件中模式的顺序?

模式文件 grep 的输出是否取决于模式文件中模式的顺序?

我运行的是 Mac OS X,所以 UNIX 和我得到的结果在我看来很奇怪。

我有两个模式文件:

文件1

PAMR1
PAM

文件2

PAM
PAMR1

运行grep -w -f my_file results.csv不同的文件会产生不同的结果。

grep -w -f file2 file2返回:

PAM

grep -w -f file1 file2返回:

PAM
PAMR1

这里发生了什么?

答案1

grep 的输出不依赖于文件中模式的顺序,只要您要求 grep 输出整行而不是识别匹配的行部分(例如使用-oor--color选项)。

除非 grep 中有错误,否则就是这样。经鉴定桑迪普在评论中,FreeBSD/macOS 上的 grep 中存在一个错误,当文件中前面的另一个模式是它的前缀时,它会导致它错过某个模式。

相关内容