0

我想找出两个文件中的相交记录。限制是记录可以出现在文件中的任何位置。为此,我正在使用下面的代码

awk 'FNR==NR{a[$0];next}($0 in a)' 1.txt 2.txt

但它无法正常工作。

假设我有两个文件 1.txt 和 2.txt。

1.txt

A
B
D
E

2.txt

DD
T
B
A
Z

输出应该是这样的

B
A

请帮助我。

4

2 回答 2

1

试试这个:

grep -w -f 1.txt 2.txt

-w 状态词

-f 文件状态

于 2013-02-08T11:57:57.643 回答
0

另外的选择:

使用comm命令,这就是这个命令的目的:

comm <(sort 1.txt)  <( sort 2.txt) -12

来自man comm

With no options, produce three-column output.  Column one contains lines
unique to FILE1, column two contains lines unique to FILE2, and column
three contains lines common to both files.

-1     suppress column 1 (lines unique to FILE1)
-2     suppress column 2 (lines unique to FILE2)
-3     suppress column 3 (lines that appear in both files)

但是,comm需要排序文件。因此过程替换,如<(sort 1.txt)&<(sort 2.txt)

于 2013-02-08T12:55:29.160 回答