Linux 命令 - uniq: 通知或忽略重复行
给定一个已排好序的文件,uniq 会删除重复行并将结果输出到标准输出中。uniq 通常与 sort 结合使用以删除 sort 输出内容中的重复行。
命令格式
uniq [OPTION]... [INPUT [OUTPUT]]
命令参数
-c, --count
输出重复行列表,并且重复行前面加上其出现的次数。
-d, --repeated
只输出重复行。
-f, --skip-fields=N
忽略每行前 N 个字段。字段以空格隔开,这与 sort 类似,但不能提供参数设置可选择的字段分隔符。
-i, --ignore-case
比较时不区分大小写。
-s, --skip-chars=N
忽略每行的前 N 个字符。
-u, --unique
仅输出不重复行,这是默认的选项。
-z, --zero-terminated
以 0 字节而非新行作为行尾标志。
-w, --check-chars=N
只对前 N 个字符作比较。
--help
显示帮助信息。
--version
显示版本信息。
实例
测试文件 testfile:
good bye good bye hello world hello world how do you do long time no see long time no see long time no see this is a test file this is a test file
a) 忽略重复行。
[huey@huey-K42JE cmdline]$ uniq testfile good bye hello world how do you do long time no see this is a test file
b) 忽略重复行,并在每行前显示重复数。
[huey@huey-K42JE cmdline]$ uniq -c testfile 2 good bye 2 hello world 1 how do you do 3 long time no see 2 this is a test file
c) 仅输出有重复的行。
[huey@huey-K42JE cmdline]$ uniq -d testfile good bye hello world long time no see this is a test file