awk - 在包含单列值的多个文件中查找共同值

标签 awk text-processing comm

我有 100 个文本文件,每个文件都包含单列。文件如下:

file1.txt
10032
19873
18326

file2.txt
10032
19873
11254

file3.txt
15478
10032
11254

等等。 每个文件的大小是不同的。 请告诉我如何找到所有这 100 个文件中常见的数字。

The same number appear only once in 1 file.

最佳答案

无论同一个数字是否可以在 1 个文件中多次出现,这都会起作用:

$ awk '{a[$0][ARGIND]} END{for (i in a) if (length(a[i])==ARGIND) print i}' file[123]
10032

上面使用 GNU awk 来处理真正的多维数组和 ARGIND。如有必要,可以对其他 awk 进行简单的调整,例如:

$ awk '!seen[$0,FILENAME]++{a[$0]++} END{for (i in a) if (a[i]==ARGC-1) print i}' file[123]
10032

如果每个文件中的数字是唯一的,那么您只需要:

$ awk '(++c[$0])==(ARGC-1)' file*
10032

关于awk - 在包含单列值的多个文件中查找共同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43472246/

相关文章:

bash - 使用awk从文件中读取数据

python - 接近 MySQL 中的串行文本文件读取性能

perl - 显示多行注释 block 之外的行

perl - “perl -a”可以使用原始空格以某种方式重新加入@F吗?

bash - 带有 comm 命令的行号。是否可以?

awk:获取一些字段,其间有分隔符作为字符串

awk - 使用 awk 拆分列

linux - AWK:将匹配模式与字段分隔符连接起来

Python从arduino读取数据错误

perl - 如何提取多个文件中的公共(public)行?