Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在模式文件(txt文件)中查找多个匹配的单词 Unix系统将所有单词精细化为txt文件,将关键字精细化为模式文件_Unix - Fatal编程技术网

在模式文件(txt文件)中查找多个匹配的单词 Unix系统将所有单词精细化为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)'

例如:模式文件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)' pattern.txt a.txt
$ grep -xFf pattern.txt a.txt

grep-Ff pattern.txt a.txt
看起来像是工作,但是当a.txt像这样修改时有些奇怪:2a,3a,1a,2a,resultl将只显示3areplace
F
by
E
。看看
人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