从包含3列但行数不同的100个文件中查找公共元素

时间:2017-04-21 12:21:08

标签: awk sed grep

我有100个包含3列和不同的文件。的行。所有三列都包含重复元素。我想找到所有100个文件中的共同元素。 文件如下:

1.txt

5901 5902   8229
5901 5902  17481
5901 5902  27561
5929 5930  12875

2.txt

5901 5902  8229
5929 5930  12875

等等。 我试图使用的代码是 for((i = 0; i <= 100; i ++)) 做 comm -12 file - “$ i”.txt文件 - “$((i + 1))”。txt&gt;常见的元素 - “$ I” .TXT 完成

我使用了comm命令,但那只是2个文件。我有100个这样的文件。

1 个答案:

答案 0 :(得分:0)

如果值在文件中是唯一的,您可以计算每行的出现次数并选择与文件数相等的值,这可以在排序所有文件后使用uniq -c完成,但是以下替代方案不需要排序。

awk救援!

awk '{$1=$1} ++a[$0]==(ARGC-1)' file{1..100}.txt

5901 5902  8229
5929 5930  12875

$1=$1语句用于规范化空格,因为它在您的示例中不一致。