📅  最后修改于: 2020-12-08 03:02:20             🧑  作者: Mango
Linux uniq命令用于从文件中删除所有重复的行。同样,它可以用于显示任何单词的计数,仅重复行,忽略字符以及比较特定字段。它是sort命令一起使用,因为它比较相邻的字符。它丢弃所有相同的行并写入输出。
uniq [OPTION]... [INPUT [OUTPUT]]
uniq命令的一些有用的命令行选项如下:
-c,–count:它以出现次数为前缀。
-d,–repeated:用于print重复的行,每组一行。
-D:用于print所有重复的行。
–all-repeated [= METHOD]:它与'-D'选项非常相似,这两个选项之间的区别在于,它允许用空行分隔组。
-f,–skip-fields = N:用于避免比较前N个字段。
–group [= METHOD]:用于显示所有项目,并用空行分隔组。
-i,-ignore-case:用于在比较时忽略差异。
-s,–skip-chars = N:用于避免比较前N个字符。
-u,–unique:用于print唯一的行。
-z,-零终止:用于行定界符为NUL而不是换行模式。
-w,–check-chars = N:用于比较行中不超过N个字符。
–help:用于显示帮助文档。
–version:用于显示版本信息。
让我们看一下uniq命令的以下示例:
要从文件中删除重复的行,请执行以下基本的uniq命令:
sort dupli.txt | uniq
上面的命令将从文件“ dupli.txt”中删除重复的行。考虑以下输出:
从上面的输出中,忽略重复的单词。
通过使用uniq命令,我们可以计算单词出现的次数。 '-c'选项用于对单词进行计数。执行如下:
sort dupli.txt | uniq -c
上面的命令将计算“ dupli.txt”中的单词。考虑以下输出:
从上面的输出中,命令“ sort dupli.txt | uniq -c”计算单词重复的次数。
'-d'选项用于仅显示重复的行。它将仅显示文件中不止一次的行,并将输出写入标准输出。考虑以下命令:
sort dupli.txt | uniq -d
上面的命令将仅显示重复的行。考虑以下输出:
'-u'选项用于仅显示唯一的行(不会重复)。它只会显示仅出现一次的行,并将结果写入标准输出。考虑以下命令:
sort dupli.txt | uniq -u
上面的命令将仅显示文件“ dupli.txt”中的唯一行。考虑以下输出:
'-s'选项用于忽略比较中的字符。它将忽略指定的字符数,并将结果显示到标准输出。考虑以下命令:
sort dupli.txt | uniq -s 2
上面的命令将忽略文件“ dupli.txt”中的前两个字符。考虑以下输出:
'-f'选项用于忽略字段。考虑以下命令:
uniq -f 2 dupli2.txt
上面的命令不会比较文件“ dupli2.txt”中的前两个字段。考虑以下输出:
从上面的输出中,跳过前两个字段,并从文件“ dupli2.txt”比较所有其余字段。