如果我需要文本文件,例如:
FILE1.TXT
apple
orange
pear
banana
FILE2.TXT
banana
pear
如何从file1.txt
中取出file2.txt行中的所有短语所以file1.txt将留下:
apple
orange
答案 0 :(得分:1)
grep -v -F -f file2.txt file1.txt
-v表示仅列出与模式不匹配的file1.txt行,-f表示从文件中获取模式,在本例中为file2.txt。 -F-将PATTERN解释为固定字符串列表,由换行符分隔,其中任何一个都要匹配。
grep命令内置在OS X和Linux上。在Windows上,你必须安装它;例如通过Cygwin。
答案 1 :(得分:1)
如果文件很大(但也必须进行排序),comm
可能比Ivan提出的更一般的grep解决方案更可取,因为它逐行操作,因此,不需要加载整个文件file2.txt到内存中(或搜索每一行)。
comm -3 file1-sorted.txt file2-sorted.txt | sed 's/^\t//'
删除由sed
插入的主要标签页需要comm
命令。
答案 2 :(得分:0)
combine file1 not file2
关于Debian和衍生产品,可以在moreutils包中找到。