【问题标题】:shell script remove duplicate column from outputshell 脚本从输出中删除重复的列
【发布时间】:2021-12-25 18:28:55
【问题描述】:

仅限 Shell 脚本!

我有 2 列的以下输出。 我想消除 col 2 中的重复项。

现在的示例输出:

1    Sample1
1    Sample2
1    Sample3
2    Sample1
2    Sample2
2    Sample3
3    Sample1
3    Sample4

期望的输出:

1    Sample1
1    Sample2
1    Sample3
3    Sample4
                

谢谢!

【问题讨论】:

  • 欢迎来到 Stack Overflow。 SO 是一个面向专业和爱好者程序员的问答网站。目标是您将一些自己的代码添加到您的问题中,以至少显示您为解决这个问题所做的研究工作。请看How to create a Minimal, Complete, and Verifiable example

标签: shell awk


【解决方案1】:

如果可以接受按第 2 项按字典顺序对输出进行排序,就像您的示例一样,您可以利用 uniq 执行此任务。让file.txt内容成为

1    Sample1
1    Sample2
1    Sample3
2    Sample1
2    Sample2
2    Sample3
3    Sample1
3    Sample4

然后

sort -k2 -u file.txt

输出

1    Sample1
1    Sample2
1    Sample3
3    Sample4

解释:-k2 表示使用第二个字段,-u 只打印唯一行。

【讨论】:

    【解决方案2】:

    这种紧凑的单线将为您提供输出:

    awk '!a[$2]++' input
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 2014-07-10
      • 2018-04-08
      相关资源
      最近更新 更多