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