我知道它会进行排序,并且使用输出来找出文件中的唯一语句。我也觉得uniq -u应该打印文件中的每个唯一语句。
uniq -u data.txt
此语句的输出是:
MsxcvOe3PGrt78wpZG2bBNF5wfXpZhET
L0nxAwlfV9V3J5onKIT8KYQ9InTcQ7yE
4c7EsUtqLnLR9hiepV5EQVhdMgyi8onL
1drBmDT7PYS7hVgoTWkJSjUZUK7ZAIAa
L0nxAwlfV9V3J5onKIT8KYQ9InTcQ7yE
78rgduVcLZjLzZmooObdaN541MKV6IfQ
x0bga8Oxz5lgM8k52HrYy4ez7XJI0lM0
irGm6F73sbUrFhHukhp6JXgMQyLxJTz1
但是我什么时候跑
sort data.txt | uniq -u
输出为:UsvVyFSfZZWbi6wgC7dAFyFuR62324324324
我不明白为什么只有一行输出时第一条语句会打印一个列表。
Uniq仅比较相邻的行。因此,在以下输入中的uniq -u不会检测到重复项并打印出所有内容
foo
bar
foo
bar
如果先调用排序,您将获得已正确删除重复数据的排序列表。您稍后可能在文件中有一些重复项
uniq实用程序读取指定的文件,仅比较相邻的行,如果每个唯一的输入行都将副本写入到输出文件。
例如,如果您的数据是:
11个2541
uniq的输出将是:
2541
此处输出排序数据| uniq -u将如下所示:
排序输出:
11个1个245当将其传递给uniq时,输出将为:
245