基于第一列的第二列的记录记录不匹配

时间:2019-01-22 13:39:32

标签: unix scripting sh

我想使用diff命令进行以下比较。根据column1在第2列中标识不同的记录。 文件1

  • 1 |苹果
  • 2 |香蕉
  • 3 |猫
  • 4 |狗

File2

  • 1 |苹果
  • 2 |
  • 3 | Zibra
  • 4 |狗

第2列的输出应为2;第2行和第3行的记录不同。

1 个答案:

答案 0 :(得分:0)

$ cut -f2 -d'|' file1 > file1.2ndcolumn
$ cut -f2 -d'|' file2 > file2.2ndcolumn
$ diff file1.2ndcolumn file2.2ndcolumn

2,3c2,3
< Banana
< Cat
---
> 
> Zibra

或者,如果您只想计算不同的行,则:

$ diff -y --suppress-common-lines file1.2ndcolumn file2.2ndcolumn | wc -l

或者更快,如@Bodo在评论中建议的那样:

$ diff -y --suppress-common-lines file1 file2 | wc -l

由于您不必只考虑第二列,因为两个文件中的第一列相同...