如何查找两个匹配文件的总数

时间:2017-06-27 15:23:12

标签: bash

我有两个文本文件,如

file1 
1018 2 
1019 7
1023 4

file2
1018 2 
1019 7
1023 4
1026 8

我有一个小的bash代码来查找匹配和计数

awk 'FNR==NR{a[$0]=1; next} $0 in a { count[$0]++ } 
  END { for( i in a ) print i, count[i]}' file1 file2

我得到的输出;

1018 2  1
1019 7  1
1023 4  1

I just want total count that is in this case: 3.在循环之后打印计数很简单,但没有工作,任何解决方案....

2 个答案:

答案 0 :(得分:0)

当我在bash中输出一个列表时,我会使用" wc"。 WC会进行字数统计,您可以指定它来计算行数。所以说我想计算一个目录中的文件数。我会这样做:

ls -lh | wc -l

答案 1 :(得分:0)

您可以使用sortuniq的组合来执行此操作。这就是它的样子:

cat file1 file2 | sort | uniq -d | wc -l

说明:

  • cat用于连接两个文件
  • sort用于对合并内容进行排序
  • uniq(带选项-d)用于仅显示重复的行
  • wc(选项-l)正在计算左边的行