uniq
uniq
程序查找连续重复的行,一般用于有序数据的查重。
下面是fruit
文件的内容:
$ cat fruit
apple
apple
banana
grape
grape
grape
peach
pear
pear
watermelon
uniq
程序在没有任何命令选项的情况下,对输入去除重复行后输出:
$ 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 pear
sort
sort
程序对文件内容按行进行排序。
首先来看city
文件的内容:
$ cat city
Chengdu
Tsinan
Ningpo
Canton
Tsinan
Sining
Sining
Taipei
Canton
city
文件是一个没有排序的文件,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: Ningpo
sort
告诉我们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查看使用说明。
网友评论