uniq
uniq 命令可以去除排序过的文件中的重复行,因此 uniq 经常和 sort 合用。也就是说,为了使 uniq 起作用,所有的重复行必须是相邻的。详细看例一。
root@localhost:~/shell#uniq -[icu]
选项与参数:
-i: 忽略大小写字符的不同;
-c : 进行计数
-u : 只显示唯一的行
-d: 只显示有重复的行
-s N: 忽略前面的N个符
例一:
#file文件内容
root@localhost:~/shell# cat file
Massachusetts
Virginia
Tulsa
Falls
Massachusetts
Virginia
View
Massachusetts
#不排序使用uniq,未去掉重复行
root@localhost:~/shell# cat file | uniq
Massachusetts
Virginia
Tulsa
Falls
Massachusetts
Virginia
View
Massachusetts
#排序之后使用uniq
root@localhost:~/shell# cat file | sort
Falls
Massachusetts
Massachusetts
Massachusetts
Tulsa
View
Virginia
Virginia
#排序之后使用uniq,去相邻的重复行
root@localhost:~/shell# cat file | sort | uniq
Falls
Massachusetts
Tulsa
View
Virginia
例二:
进行计数
root@localhost:~/shell# cat file | sort | uniq -c
1 Falls
3 Massachusetts
1 Tulsa
1 View
2 Virginia
例三:
只显示唯一的行
#uniq -u
root@localhost:~/shell# cat file | sort | uniq -u
Falls
Tulsa
View
例四:
-d 只显示重复的行
root@localhost:~/shell# cat file | sort |uniq -d
Massachusetts
Virginia
例四:
忽略大小写
root@localhost:~/shell# echo "vIEW" >> file
root@localhost:~/shell# cat file
Falls
Massachusetts
Massachusetts
Massachusetts
Tulsa
view
View
Virginia
Virginia
root@localhost:~/shell# cat file | sort | uniq -i
Falls
Massachusetts
Tulsa
view
Virginia
例五:
-s N 忽略前面N个字符
root@localhost:~/shell# cat file | sort | uniq
Falls
Massachusetts
Tulsa
view
View
Virginia
root@localhost:~/shell# cat file | sort | uniq -s 1
Falls
Massachusetts
Tulsa
view
Virginia