2

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

到目前为止我写的代码。

#!/bin/bash

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

4 回答 4

5

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

sort -u out.txt -o out.txt

编辑:(感谢三人组

目前,您的脚本包含解析 ls 输出的问题,

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

sort -u *contact* >out.txt
于 2013-08-11T05:12:27.457 回答
4

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

#!/bin/bash

cat $(ls | grep 联系人) | 排序 | uniq > out.txt

或者像这样的-u标志sort

#!/bin/bash

cat $(ls | grep 联系人) | 排序 -u > out.txt
于 2013-08-11T05:12:31.130 回答
0

看一下“uniq”命令,并在排序后通过管道将其通过。

于 2013-08-11T05:12:56.890 回答
0

uniq可以做你需要的。它将行从输入复制到输出,如果它是它刚刚输出的行,则省略一行。

于 2013-08-11T05:11:31.280 回答