【问题标题】:Use awk or sed to eliminate repeat entries in text file使用 awk 或 sed 消除文本文件中的重复条目
【发布时间】:2023-03-17 23:08:01
【问题描述】:

我有一个这样的文本文件...

apples
berries
berries
cherries

我希望它看起来像这样......

apples
berries
cherries

就是这样。我只想消除重复的条目。我希望这是一个 awk 或 sed “单线”,但如果有其他一些我忽略的常见 bash 工具,那就没问题了。

【问题讨论】:

  • 输入是否排序?重复项总是相邻吗?
  • 我正在从 /usr/share/dict/words 管道输出,因此它始终按字母顺序排列,并且重复项始终相邻。但如果我以后开始使用不同的字典,它们可能就不会了。

标签: linux bash text awk sed


【解决方案1】:

这个任务有一个特殊的命令,叫做uniq

$ uniq file
apples
berries
cherries

这要求公共线是相邻的,不相邻的等号线不去掉。

【讨论】:

    【解决方案2】:
    sort -u file
    

    如果您不担心输出的顺序。

    通过保留顺序删除重复项:

    awk '!a[$1]++' file
    

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 2014-12-10
      • 2023-03-05
      • 2013-01-05
      • 1970-01-01
      相关资源
      最近更新 更多