6 shell命令之sort,uniq

sort用来排序,uniq用来去重,这两个命令经常被结合在一起使用.主要就是因为uniq去重的前提是文本必须排好序才可以.

当然字面上面理解,这两个命令的确是这样的功能.但是其实不然,他们还有相关的其它能力.一起来看看.

sort [option] filename … 对filename指定的文件进行排序相关的操作.

option常用的包括:

-b 忽略最前面的空格.

-c 检查是否已经排序,结果通过$?来查看

-n 按数字进行排序

-d 字典排序.

-M 月份排序

-h 排序人们所理解的单位.比如1K 小于 1G

-r reverse 反序

-R random 随机

-t 域分隔符

-k 关键字域

-o 输出,默认输出到stdout,如果指定了这个选项,则输出到文件中.

-u 排序后去除重复的行.

在上面这些选项中最常用的就是-b -n -t -k -r

看下效果:

1. 根据当前目录文件的大小排序:

sort默认的分隔符是空格和tab键,所以在这里并不需要特别指定.

2. 指定输出文件.

这也就是-o存在的意义.你可能想重定向到同一个文件中,但是那样的结果是你会死得很惨.数据会丢失.这种方式则不会.

3. 检查一个文件是否排好了

4. 排序去重

ok.基本上我也就用这么几个sort的功能.同学们在实际的应用中,要习惯去使用man.可能英文不是那么好理解,至少对我而言如此.不过我有自己的办法,就是我先去熟悉一个命令,等大致熟悉了以后,就可以理解英文的意思了.

通过第四个小例子,可以很容易联想到uniq,因为它同样可以完成这样的意图.

uniq [option] input output uniq接受输出,把结果输出的标准输出.

常见的选项有:

-d 仅打印出重复的行

-u 仅打印不重复的行,与-d作用相反

-c 去重,并且加一个计数前缀.

-s n 跳过前n个字符.

-w n 仅比较指定的n个字符数,常和s选项合用,指定一个范围进行去重.

关于这两个命令就总结这么多,还是要多去敲敲,哪怕没有环境用,创造一个环境也用一下.

,不要气馁于那前方的阴影,那只是因为我背后光芒万丈

6 shell命令之sort,uniq

相关文章:

你感兴趣的文章:

标签云: