【问题标题】:Linux : remove duplicate lineLinux:删除重复行
【发布时间】:2017-09-29 19:20:21
【问题描述】:

我有一个 txt 文件。我想删除所有重复的行。

我试过这些,但没有用

sort -ur file.txt

uniq -D -f 2 file.txt

文件.txt

34.78.54.21 websrv1 nameweb
34.78.54.21 nameweb

我只需要一行

【问题讨论】:

  • 该文件没有重复的行。你到底需要什么?
  • 请添加预期的输出并解释在什么基础上定义了重复...添加更多输入案例也会有所帮助
  • @Sundeep 我需要对 ip 地址进行排序
  • 该解决方案将采用您在your previous question开始使用的相同方法 - 您不明白那个脚本在做什么吗?另外,您之前的问题没有accept any of the answers - 他们都没有按照您的要求做吗?

标签: linux sorting awk aix uniq


【解决方案1】:

根据您的输入,我假设您将第一个字段 (34.78.54.21) 称为重复项。如果您只想保留每个数字的第一次出现,那么这对您有用:

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

输出:

34.78.54.21 websrv1 nameweb

此命令查看 $1 是否不是数组中的键。如果不是,那么它将被添加到数组中并进行默认打印。对于下一行 $1 在数组中,整个事情将评估为假而不打印。

【讨论】:

    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 2013-12-29
    • 2018-04-07
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多