Bash 如何查找两个匹配文件的总数
我有两个文本文件,比如Bash 如何查找两个匹配文件的总数,bash,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 我只想得到本
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
我只想得到本例中的总计数:3。
在循环后打印计数很简单,但不起作用,任何解决方案……当我在bash中有一个输出列表时,我将使用“wc”。WC进行字数计算,您可以指定它来计算行数。假设我想计算一个目录中的文件数。我会:
ls -lh | wc -l
您可以使用
sort
和uniq
的组合来执行此操作。这就是它的样子:
cat file1 file2 | sort | uniq -d | wc -l
说明:
用于连接两个文件cat
用于对合并内容进行排序sort
(带有选项uniq
)仅用于显示重复的行-d
(带有选项wc
)正在计算左边的行数-l
结束{打印长度(a)}
?或者只是count++
然后END{print count}
请将预期输出添加到您的问题中。它计算文件1中的行数,即使它与文件2不匹配。。。。我希望它匹配的时间比它计数的时间长,并且在最后得到匹配的数量….comm-12 file1 file2 | wc-l
。假设他们已经分类了。