您好我正在用bash编写一个脚本,该脚本读取其中包含“contact”(在当前目录中)的文件的内容,并按字母顺序对这些文件中的所有数据进行排序 并将它们写入名为“out.txt”的文件中。我想知道是否有任何方法可以摆脱重复的内容。任何帮助将不胜感激
到目前为止我写的代码。
#!/bin/bash
cat $(ls | grep contact) > out.txt
sort out.txt -o out.txt
答案 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”命令,并在排序后将其通过那里。