2017-05-26 191 views
-5

我有两个文本文件,如下图所示:Linux的比较两个文本文件

FILE1.TXT

A|234-211 
B|234-244 
C|234-351 
D|999-876 
E|456-411 
F|567-211 

FILE2.TXT

234-244 
999-876 
567-211 

我想比较这两个文件并获得如下所示的值:

Dequired输出

B|234-244 
D|999-876 
F|567-211 
+0

'diff File1.txt File2.txt' –

+0

可能重复[grep,awk或sed?在另一个文件中匹配模式的一个文件中打印行](https://stackoverflow.com/questions/21388825/grep-awk-or-sed-print-lines-in-one-file-matching-patterns-in-another-文件) –

回答

2
$ grep -F -f file2.txt file1.txt 
B|234-244 
D|999-876 
F|567-211 

-F使得用于固定的字符串(未图案)的grep搜索。 -F-f都是POSIX optionsgrep

请注意,假设您的file2.txt不包含像11这样可能导致误报的短字符串。

+0

不能正常工作返回F | 567-211 – Kavinda

+0

@Kavinda是的,它工作。显示的输出正是我对您指定的输入文件的结果。将我的命令剪切并粘贴到您的命令行中,您可以验证。如果它不适合你,你的输入文件不是你向我们展示的。 – Jens

+0

非常感谢你工作好:) – Kavinda

0

尝试:

grep -f File2.txt File1.txt 
+0

不能正常工作返回F | 567-211 – Kavinda