[Linux-脚本]排序、统计、合并命令
1、排序命令 - sort:
sort可以帮我们进行排序,排序顺序按照LANG(语系环境变量)确定。据观察,sort排序以行为单位进行。排序以第一个不相同的字符决定先后顺序(只与第一个不相同的字符相关)。sort命令调用格式为: sort [-fbMnrtuk] [file or stdin]
其具体选项解释为:
- -f : 忽略大小写的差异,例如 A 与 a 视为编码相同;
- -b : 忽略最前面的空格部分;
- -M : 以月份的名字来排序。例如 JAN,DEC等的排序方法;
- -n : 使用“纯数字”进行排序(默认是以文字类型来排序的);
- -r : 反向排序;
- -u : 就是uniq,相同的数据中,仅出现一行代表;
- -t : 分隔符,默认使用[tab]键来分隔;
- -k : 以那个区间(field)来进行排序的意思。
- 其它选项
sort的选项基本没多大用处,一般直接用sort就解决问题了。
2、统计-wc:
这个一个非常简单的命令,就是统计文件中的行数、单词数(统计空白字符)、字符数。
具体选项解释:
- -l : 仅列出函数;
- -w : 仅列出单词数(被空白字符分隔的东西,你如果愿意每个汉字间用空白字符分隔开,也可以统计出来);
- -m : 仅列出字符数。
- -c : 列出字节数
注意事项:
- 不带选项调用wc会输出三个项,分别是行数、单词数、字符数,就相当于调用了-lwm;
- 函数是统计行结束符的,如果最后一行没有行结束符则统计不出来(实测结果),事实上man给出的-l的解释是“列出new line的数目”;
3、排序后合并-uniq:
强调排序后合并是因为uniq只能在相邻行之间发生关系,所以一般得先用sort排序后才能发挥作用。uniq主要作用是把相邻的重复数据合并显示。
具体选项解释:
- -i: 忽略大小写字符的不同;
- -c : 合并的同时进行计数,计数值显示在行的最前面。