通过比较 Linux 中的两列仅打印第一列中的唯一值

通过比较 Linux 中的两列仅打印第一列中的唯一值

我有一个带有示例的文本文件(两列用:)分隔

如果第一列第一行再次重复,则不考虑它并给出输出

11:22

33:44

55:66

55:77

我想要的输出应该是

11:22

33:44

答案1

sort file | uniq --unique --check-chars=2

我做两个假设:

  • 可以改变行顺序(排序)
  • 第一列总是两个字符宽

答案2

用于排除重复的行仅第一列

sort file | uniq -u -w 1

用于排除重复的行第一个字段什么时候以冒号分隔

cut -d: -f1 file | sort | uniq -u

在这两种情况下,我们需要在将sort输出通过管道传输到文件之前uniq(就像uniq在相邻的匹配行上工作一样)。然后uniq使用一些选项进行操作。

来自uniq手册页:

-u:     only print unique lines
-w N:   compare no more than N characters in lines

相关内容