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

Awk 从所有包含3列但行数不同的100个文件中查找公共元素,awk,sed,grep,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 等等。 我尝试使用的代码如下 对于((i=0;i公共元素-“$i”.txt 完成 我使用了comm命令,但这仅适用于2个文件。我有100个这样的文

我有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
等等。 我尝试使用的代码如下 对于((i=0;i公共元素-“$i”.txt 完成


我使用了comm命令,但这仅适用于2个文件。我有100个这样的文件。

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

awk
救援

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

5901 5902  8229
5929 5930  12875

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

您的常用元素是什么?我上面显示的文件有一些常用元素,如5901 5902 8229。确实添加了您尝试用于两个文件的
comm
命令…它解决了两个文件的问题吗?如果是,您可以很好地使用循环,如您的上一个问题显示了这一点:您想输出所有100个文件中出现的任何数字,而不考虑行或列吗?是的,而不考虑行,因为列数相同。我想输出所有100个文件中出现的数字如何对100个文件使用上述awk命令,因为上述命令仅用于两个文件。有吗没有限制,你可以列出所有的名字,或者像我一样使用bash扩展,或者使用globbing或者所有目录内容等等。非常感谢。这真的很有帮助。