嗨,我正在用 bash 编写一个脚本,它读取其中包含单词“contact”(在当前目录中)的文件的内容,并按字母顺序对这些文件中的所有数据进行排序,并将它们写入一个名为“out.out”的文件中。文本”。我想知道是否有任何方法可以摆脱重复的内容。任何帮助,将不胜感激
到目前为止我写的代码。
#!/bin/bash
cat $(ls | grep contact) > out.txt
sort out.txt -o out.txt
嗨,我正在用 bash 编写一个脚本,它读取其中包含单词“contact”(在当前目录中)的文件的内容,并按字母顺序对这些文件中的所有数据进行排序,并将它们写入一个名为“out.out”的文件中。文本”。我想知道是否有任何方法可以摆脱重复的内容。任何帮助,将不胜感激
到目前为止我写的代码。
#!/bin/bash
cat $(ls | grep contact) > out.txt
sort out.txt -o out.txt
sort
有选项-u
(长选项--unique
:)只输出唯一的行:
sort -u out.txt -o out.txt
编辑:(感谢三人组)
目前,您的脚本包含解析 ls 输出的问题,
这是您尝试做的更好的替代品:
sort -u *contact* >out.txt
使用uniq
命令使用它(比标志更容易记住)
#!/bin/bash cat $(ls | grep 联系人) | 排序 | uniq > out.txt
或者像这样的-u
标志sort
#!/bin/bash cat $(ls | grep 联系人) | 排序 -u > out.txt
看一下“uniq”命令,并在排序后通过管道将其通过。
uniq
可以做你需要的。它将行从输入复制到输出,如果它是它刚刚输出的行,则省略一行。