linux下的命令
源代码在线查看: uniq.txt
uniq命令
文件经过处理后在它的输出文件中可能会出现重复的行。 例如,使用cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重复行。这时可以使用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。
$cat hello.txt world.txt | sort | uniq 可以认为 uniq有点像sort命令中唯一性选项。对,在某种程度上讲正是如此,但两者有一个重要区别。 sort的唯一性选项去除所有重复行,而 uniq命令并不这样做。重复行是什么?在uniq里意即持续不断重复出现的行,中间不夹杂任何其他文本。
语法:
uniq [选项] 文件
注意: uniq所认为的重复行是指连续出现的重复行!
说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示,则从标准输入读取。
该命令各选项含义如下:
- c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。
- d 只显示重复行。
- u 只显示文件中不重复的各行。
- n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
+ n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。
-f n 与- n相同,这里n是字段数。 -f, --skip-fields=N avoid comparing the first N fields
-s n 与+n相同,这里n是字符数。 -s --skip-chars=N avoid comparing the first N characters 注意:尽量使用-f和-s形式,FC7只支持这种格式。。。 例如: 1. 显示文件example中不重复的行。 uniq -u example 2. 显示文件example中不重复的行,从第2个字段的第2个字符开始做比较。 uniq -u -1 +1 example