Bash Shell删除重复行

Bash Shell删除重复行,选择或排序完数据后,你发现结果中出现了很多重复行。你想要去除这些重复内容。

解决方案

你有两种选择。如果只对输出进行排序,可以使用 sort 命令的 -u 选项。

somesequence | sort -u

如果不用 sort,则只需要通过管道将输出传给 uniq。但有一个前提:输出是有序的,相同的行集中在一起。

somesequence | uniq > myfile

讨论

因为 uniq 要求数据已经事先完成排序,所以我们更可能只使用带有 -u 选项的 sort,除非还需要统计重复行的数量(-c,参见 数字排序)或只查看重复行(-d),此时才轮到 uniq 上阵。

可别不小心把重要的文件给误覆盖了。uniq 命令的参数有点怪。大多数 Unix/Linux 命令可以在命令行上接受多个输入文件,但 uniq 不然。事实上,uniq 的第一个(非选项)参数被视为(唯一的)输入文件,第二个参数(如果指定了)被视为输出文件。因此,如果你在命令行上指定了两个文件名,那么第二个文件会在毫无预警的情况下被覆盖。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!