假设我有一个文件,其中包含许多行,有一些重复:
line1
line1
line1
line2
line3
line3
line3
我应该使用哪些Linux命令来生成唯一行的列表
line1
line2
line3
如果文件未排序,即重复行可能不在块中,这会改变吗?
如果你不介意输出被排序,可以使用
sort -u
这将排序并删除重复项
cat
命令用于输出文件的内容,管道符号 "|" 用于将其输出结果传输给 sort
命令进行排序,再通过管道将排序后的结果传递给 uniq
命令以输出唯一值。
如果文件内容已经排好序,则不需要执行 sort
部分。
sort -u file >> unique_file
创建一个包含唯一行(未排序)的新文件:
cat file | uniq >> unique_file
sort -u file
sort -fu file
看起来,甚至更好的想法是使用命令:
uniq file
如果我们还想忽略大小写(结果是返回重复的第一行,而不改变大小写):
uniq -i file