如何摆脱重复?

时间:2013-08-11 05:07:20

标签: bash grep duplicates

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

到目前为止我写的代码。

#!/bin/bash

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

4 个答案:

答案 0 :(得分:5)

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

sort -u out.txt -o out.txt

编辑:(感谢 tripleee

您的脚本目前包含parsing ls output

的问题

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

sort -u *contact* >out.txt

答案 1 :(得分:4)

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

#!/bin/bash

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

-u的{​​{1}}标志,如此

#!/bin/bash

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

查看“uniq”命令,并在排序后将其通过那里。