【问题标题】:How to get rid of duplicates? [duplicate]如何摆脱重复? [复制]
【发布时间】:2013-08-11 05:07:20
【问题描述】:

嗨,我正在用 bash 编写一个脚本,它读取文件中包含“联系人”(在当前目录中)的文件的内容,并按字母顺序对这些文件中的所有数据进行排序 并将它们写入一个名为“out.txt”的文件。我想知道是否有任何方法可以摆脱重复的内容。任何帮助将不胜感激

到目前为止我写的代码。

#!/bin/bash

cat $(ls | grep contact) > out.txt
sort out.txt -o out.txt

【问题讨论】:

  • “如何摆脱重复?[重复]”:D ..这让我很开心。答:您在发布问题之前搜索现有问题:D

标签: bash grep duplicates


【解决方案1】:

sort 具有选项 -u(长选项:--unique)仅输出唯一行:

sort -u out.txt -o out.txt

编辑:(感谢 tripleee

您的脚本目前存在parsing ls output的问题,

这是您尝试做的更好的替代品:

sort -u *contact* >out.txt

【讨论】:

【解决方案2】:

通过uniq 命令使用它(比标志更容易记住)

#!/bin/bash cat $(ls | grep 联系人) |排序 | uniq > out.txt

sort-u 标志像这样

#!/bin/bash cat $(ls | grep 联系人) |排序 -u > out.txt

【讨论】:

  • 最欢迎@user2318535 :)
【解决方案3】:

uniq 可以满足您的需求。它将行从输入复制到输出,如果是它刚刚输出的行,则省略一行。

【讨论】:

    【解决方案4】:

    看一下“uniq”命令,并在排序后通过管道将其通过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 2015-04-06
      相关资源
      最近更新 更多