在模式文件(txt文件)中查找多个匹配的单词 Unix系统将所有单词精细化为txt文件,将关键字精细化为模式文件
例如:模式文件txt在模式文件(txt文件)中查找多个匹配的单词 Unix系统将所有单词精细化为txt文件,将关键字精细化为模式文件,unix,Unix,例如:模式文件txt 1 2 3 例如:一个.txt文件,我们想找出包含1、2或3的单词 a 2 4 3 5 4 1 2 结果如下: 2 3 1 2 我试过了,但不太好 awk'/1/,/2/,/3/,。。。。a、 txt您希望在pattern.txt和a.txt之间有一个精确的匹配。这意味着如果pattern.txt包含一行: foo 那么这一行只能匹配“foo”而不能匹配 要实现完美匹配,您可以执行以下操作: $ awk '(NR==FNR){a[$0];next}($0 in a)'
1
2
3
例如:一个.txt文件,我们想找出包含1、2或3的单词
a
2
4
3
5
4
1
2
结果如下:
2
3
1
2
我试过了,但不太好
awk'/1/,/2/,/3/,。。。。a、 txt您希望在
pattern.txt
和a.txt
之间有一个精确的匹配。这意味着如果pattern.txt
包含一行:
foo
那么这一行只能匹配“foo”而不能匹配
要实现完美匹配,您可以执行以下操作:
$ awk '(NR==FNR){a[$0];next}($0 in a)' pattern.txt a.txt
$ grep -xFf pattern.txt a.txt
grep-Ff pattern.txt a.txt
看起来像是工作,但是当a.txt像这样修改时有些奇怪:2a,3a,1a,2a,resultl将只显示3areplaceF
byE
。看看人grep
不工作,一些关键词会丢失,我尝试grep-w'1\| 2\| 3\|将是正确的结果,但不是我的要求
$ awk '(NR==FNR){a[$0];next}($0 in a)' pattern.txt a.txt
$ grep -xFf pattern.txt a.txt