uniq程序查找连续重复的行,一般用于有序数据的查重。
下面是fruit文件的内容:
$ cat fruit
apple
apple
banana
grape
grape
grape
peach
pear
pear
watermelonuniq程序在没有任何命令选项的情况下,对输入去除重复行后输出:
$ uniq fruit
apple
banana
grape
peach
pear
watermelon它有几个常用的命令选项:
-c:去除重复行后输出,在每行前标明重复次数。-u:仅输出不重复的行。-d:仅输出重复行。下面是几个例子:
$ uniq -c fruit # 在每行前标明重复次数
2 apple
1 banana
3 grape
1 peach
2 pear
1 watermelon
$ uniq -d fruit # 仅输出重复行
apple
grape
pear
$ uniq -u fruit # 仅输出不重复行
banana
peach
watermelon
$ uniq -cd fruit # 仅输出重复行,并标明重复次数
2 apple
3 grape
2 pearsort程序对文件内容按行进行排序。
首先来看city文件的内容:
$ cat city
Chengdu
Tsinan
Ningpo
Canton
Tsinan
Sining
Sining
Taipei
Cantoncity文件是一个没有排序的文件,sort同学可以帮我们把它变成排序好的:
$ sort city
Canton
Canton
Chengdu
Ningpo
Sining
Sining
Taipei
Tsinan
Tsinan然而事实上并没有写入文件,使用-o选项指定输出文件:
$ sort -o citysort city这条命令中sort将city文件中的内容排序后写入到citysort中。
使用-f命令选项使sort忽略大小写差异。
使用-c命令选项查看文件是否是排序好的:
$ sort -c city
sort: city:3: disorder: Ningposort告诉我们city文件从Ningpo开始是未排序的。
-u选项使sort对文件内容进行排序,并去除重复行:
$ sort -u city
Canton
Chengdu
Ningpo
Sining
Taipei
Tsinan还有一个很重要的选项,就是-r选项,它使sort反向排序:
$ sort -ru city
Tsinan
Taipei
Sining
Ningpo
Chengdu
Canton相关:还有很多有用的过滤器,比如expand、fmt、join等等,您可以使用man查看使用说明。