作者
林一
白天搬砖,晚上做梦。我有故事,你有酒么?
Linux 命令 uniq 命令解析
uniq 的作用是用于过滤、统计和操作文本文件中相邻且重复的行。
uniq 的一般形式如下:
代码语言:javascript复制uniq [-c| -d| -u] [-i] [input_file] [output_file]
-c:在每行前面添加该行在文件中出现的次数;
-d:仅显示有重复的行;
-u:仅显示没有重复的行;
-i:在比较行时忽略字符大小写。
为方便读者理解,林一写个具体的 demo:
代码语言:javascript复制$ cat linyi.txt
apple
orange
banana
apple
pear
banana
grape
$ uniq linyi.txt
apple
orange
banana
apple
pear
banana
grape
$ uniq -c linyi.txt
2 apple
1 orange
2 banana
1 pear
1 grape
$ uniq -d linyi.txt
apple
banana
$ uniq -u linyi.txt
orange
pear
grape
林一提前建立了一个 linyi.txt 文件,它包含了一些水果。
经过 uniq 命令的处理,重复的行被合并成一个,没有重复的行被保留,同时在行前面加上了出现的次数。
也可以通过 -d 参数只显示重复的行,通过 -u 参数只显示不重复的行。
Linux 命令 uniq 命令注意事项
uniq 命令只能处理相邻行的重复,如果两个重复行不在一起,需要先通过其他命令将它们放在一起再使用 uniq 命令;
uniq 命令默认是区分大小写的,如果需要忽略大小写需要使用 -i 参数;
可以通过 sort 命令对文件进行排序后再使用 uniq 命令,这样可以处理任意位置的重复行;
uniq 命令也可以用来查找文件中唯一的行或者查找唯一的行后删除其它行,使用 -u 参数就可以实现这样的效果。