所以我有一个file1.txt与一个名称列表和一个file2.txt与另一个名称列表,我需要一个列表与两个文件中的名称。找到另一个文件中的行
我试过grep-f file1.txt file2.txt > newlist.txt
但由于某种原因,它不起作用,newlist.txt的名称不在file1中。
有谁知道为什么会发生这种情况,我能做些什么才能得到两个名单上的名字?
谢谢。
所以我有一个file1.txt与一个名称列表和一个file2.txt与另一个名称列表,我需要一个列表与两个文件中的名称。找到另一个文件中的行
我试过grep-f file1.txt file2.txt > newlist.txt
但由于某种原因,它不起作用,newlist.txt的名称不在file1中。
有谁知道为什么会发生这种情况,我能做些什么才能得到两个名单上的名字?
谢谢。
如果每个列表中的每个名称是唯一的,那么你就可以找到他们的交集,如下所示:
sort file1.txt file2.txt | uniq -d > newlist.txt
如果FILE1.TXT和FILE2.TXT进行排序,也可以使用“通讯”
comm -12 file1.txt file2.txt > newlist.txt
或'comm -12 <(排序file1.txt)<(排序file2.txt)''如果没有排序... – Sundeep
你的grep -f file1.txt file2.txt > newlist.txt
是一个不错的想法,但是当file1.txt具有“s10”和file2.txt具有“slass100”时会产生太多的命中。你要匹配的完整产品线,所以尽量
grep -Fxf file1.txt file2.txt > newlist.txt
这应该是比首先需要排序的解决方案更快。
这些文件的内容是什么? –
[Unix命令查找两个文件中常见的行的可能的重复](https://stackoverflow.com/questions/373810/unix-command-to-find-lines-common-in-two-files) – tripleee