【问题标题】:unmatched record count of 2nd column based on 1st column基于第 1 列的第 2 列记录数不匹配
【发布时间】:2019-06-16 00:01:16
【问题描述】:

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

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

文件2

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

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

【问题讨论】:

  • 您要计算不同的行数吗?那么很可能是stackoverflow.com/q/1566461/10622916的重复
  • 我觉得不相似,,,
  • 我只想要 column2 的差异计数。
  • 您的示例文件仅在第 2 列显示差异,其余文件相同,因此比较整行不会有问题。如果您的案例更复杂,请创建示例文件来显示无法比较整行的案例。
  • 如果两个文件中的第一列相同,那么您可以简单地比较两个文件而无需考虑列。更新并没有改变这一点。尝试stackoverflow.com/q/1566461/10622916中问题中的命令

标签: unix scripting sh


【解决方案1】:
$ 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

因为您不需要只考虑第二列,因为两个文件中的第一列是相同的...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 2017-11-21
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 2021-02-16
    • 2015-11-30
    相关资源
    最近更新 更多