use*_*654 3 linux command-line string-manipulation ubuntu
我有一个文本文件。每行包含一个字符串。有些字符串是重复的。我想删除重复的内容,但我想保留第一次出现的内容。例如:
line1
line1
line2
line3
line4
line3
line5
Run Code Online (Sandbox Code Playgroud)
应该
line1
line2
line3
line4
line5
Run Code Online (Sandbox Code Playgroud)
我尝试过:sort file1 | uniq -u > file2但这没有帮助。它删除了所有重复的字符串,而我希望出现第一个字符串。我不需要排序。只需删除新行中字符串的精确重复,同时保持其他所有内容不变即可。
如果您无论如何都允许排序,那么这将起作用:
sort | uniq
Run Code Online (Sandbox Code Playgroud)
-u是你麻烦的根源,因为(来自man 1 uniq):
-u,--unique
只打印唯一的行
而默认情况下:
如果没有选项,匹配的行将合并到第一次出现的位置。
| 归档时间: |
|
| 查看次数: |
9051 次 |
| 最近记录: |