我有两个文件,第一个是我记录了这种类型的数据:
77437234:AAAAAA
34434342:BBBBBB
65434343:AAAAAA
99543545:GGGGGG
在第二个文件中,第一个文件中存在大量数据(单词)(例如AAAAAA
和GGGGGG
),需要在第一个文件中找到匹配项并复制它们进入新的最终文件
(需要复制第一个文件的整行)
答案 0 :(得分:2)
您可以使用grep
来匹配单词文件:
$ cat file
77437234:AAAAAA
34434342:BBBBBB
65434343:AAAAAA
99543545:GGGGGG
$ cat words
AAAAAA
GGGGGG
$ grep -Fwf words file
77437234:AAAAAA
65434343:AAAAAA
99543545:GGGGGG
要将输出保存在新文件中,请使用重定向:
$ grep -Fwf words file > final
选项:
-w, - word-regexp
仅选择包含构成整个单词的匹配项的行。测试是匹配的子字符串必须是 在行的开头,或前面是非单词成分 字符。同样,它必须位于该行的末尾 或者后跟一个非单词构成字符。单词构成字符是字母,数字和下划线。
-f FILE, - file = FILE
从FILE获取模式,每行一个。空文件包含零模式,因此不匹配任何内容。 (-f由POSIX指定。)
-F, - 固定字符串
将PATTERN解释为固定字符串列表,由换行符分隔,其中任何一个都要匹配。 (-F由POSIX指定。)
如果您想要与确切的字段匹配,可以使用以下awk
脚本:
$ awk -F: 'NR==FNR{words[$0];next}$2 in words' words file
77437234:AAAAAA
65434343:AAAAAA
99543545:GGGGGG