我需要处理大文件,必须找到两者之间的差异.我不需要不同的位,但需要差异的数量.
要找到我想出的不同行数
diff --suppress-common-lines --speed-large-files -y File1 File2 | wc -l
Run Code Online (Sandbox Code Playgroud)
它有效,但还有更好的方法吗?
以及如何计算差异的确切数量(使用标准工具,如bash,diff,awk,sed一些旧版本的perl)?
Jos*_*osh 45
如果要计算不同的行数,请使用:
diff -U 0 file1 file2 | grep ^@ | wc -l
Run Code Online (Sandbox Code Playgroud)
约翰的回答不是重复计算不同的行吗?
Joh*_*ica 43
diff -U 0 file1 file2 | grep -v ^@ | wc -l
Run Code Online (Sandbox Code Playgroud)
对于diff列表顶部的两个文件名,减去2 .统一格式可能比并行格式快一点.
如果使用Linux/Unix,那么如何comm -1 file1 file2在file1中打印不在file2中的行comm -1 file1 file2 | wc -l来计算它们,同样适用于comm -2 ...?
小智 5
由于每个不同的输出行都以<或>字符开头,我建议这样做:
diff file1 file2 | grep ^[\>\<] | wc -l
Run Code Online (Sandbox Code Playgroud)
通过在脚本行中仅使用\<或 ,\>您可以仅计算其中一个文件中的差异。