排序文件名 | uniq > 输出未删除重复项

Nev*_*arn 3 command-line

所以我使用的命令如下:

sort file1.txt | uniq > cleared.txt
Run Code Online (Sandbox Code Playgroud)

但是,cleared.txt 文件的大小完全相同,并且所有重复项仍然存在。您能否解释一下我尝试做的方式有什么问题,也许还提供替代方案?

谢谢!

更新:我尝试使用以下 awk 命令,但重复项仍然存在。

awk '!seen[$0]++'
Run Code Online (Sandbox Code Playgroud)

也许值得一提的是,我试图清理的文件是从可能源自不同国家/布局的不同文件中收集的。请注意,我想保留一份重复的单词。

ubf*_*an1 5

最有可能的是您的尾随空格导致了非唯一的指定。尝试使用 xargs 删除它们,例如:

sort file1 | xargs -n 1 |uniq
Run Code Online (Sandbox Code Playgroud)

  • -1 这是一个可怕的删除尾随空格的技巧。更好的替代方法是 `sed -re 's/\s+$//' file1.txt` 或 `grep -oe '^.*\S' file1.txt`。 (2认同)