所以我有一个带有名单列表的file1.txt和一个带有另一个名称列表的file2.txt,我需要一个列表,其中包含两个文件中的名称。
我尝试grep-f file1.txt file2.txt > newlist.txt
但由于某种原因它不起作用,而newlist.txt的名称不在file1中。
有谁知道为什么会这样,以及如何只获取两个名单上的名字?
谢谢。答案 0 :(得分:2)
如果对file1.txt和file2.txt进行排序,您可以使用' comm'
comm -12 file1.txt file2.txt > newlist.txt
答案 1 :(得分:1)
如果每个列表中的每个名称都是唯一的,那么您可以按如下方式找到它们的交集:
sort file1.txt file2.txt | uniq -d > newlist.txt
答案 2 :(得分:0)
你的grep -f file1.txt file2.txt > newlist.txt
是一个很好的想法,但是当file1.txt有“s10”而file2.txt有“slass100”时会给出太多的点击。您想匹配整行,请尝试
grep -Fxf file1.txt file2.txt > newlist.txt
这应该比需要先排序的解决方案更快。