Bash 如何消除重复?

Bash 如何消除重复?,bash,grep,duplicates,Bash,Grep,Duplicates,您好,我正在用bash编写一个脚本,它读取包含单词“contact”(在当前目录中)的文件的内容,并按字母顺序对这些文件中的所有数据进行排序 并将它们写入名为“out.txt”的文件中。我想知道是否有什么方法可以消除重复内容。任何帮助都将不胜感激 到目前为止我编写的代码 #!/bin/bash cat $(ls | grep contact) > out.txt sort out.txt -o out.txt uniq可以满足您的需要。它将行从输入复制到输出,如果它是刚输出的行,则省略

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

到目前为止我编写的代码

#!/bin/bash

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

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

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

sort -u out.txt -o out.txt
编辑:(感谢tripleee)

您的脚本目前包含以下问题:

这是一个更好的替代品,可以替代您正在尝试的操作:

sort -u *contact* >out.txt

使用
uniq
命令(比标记更容易记住)使用此选项


看看“uniq”命令,在排序后通过管道将其发送到那里。

Most-welcome@user2318535:)或者更好的是
sort-u*contact*>out.txt
也可以去除不美观的内容。“如何去除重复项?[duplicate]”:D..这让我很开心。回答:在发布问题之前先搜索现有问题:D #!/bin/bash cat $(ls | grep contact) | sort | uniq > out.txt #!/bin/bash cat $(ls | grep contact) | sort -u > out.txt