我运行的是 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 输出整行而不是识别匹配的行部分(例如使用-o
or--color
选项)。
除非 grep 中有错误,否则就是这样。经鉴定桑迪普在评论中,FreeBSD/macOS 上的 grep 中存在一个错误,当文件中前面的另一个模式是它的前缀时,它会导致它错过某个模式。