sort 排序。sort a.txt 表示文件a.txt中按照每一行首字母排序。sort -n a.txt 按照数字排序。sort -r -n a.txt 按照数字进行排到序。
uniq 踢重。uniq filename 剔除重复uniq -c filename 踢重后并显示每一行重复的次数
一般踢重都是要先排序在踢重,因为uniq踢重只能剔除连续重复。sort -n -r 1.t|uniq -c 表示先按照数字排倒序,再进行剔重并显示重复次数
经典例子:
老板要求找出日志1.txt中ip 访问量最高的前两名,并输出到/tmp/目录下以当前日期命名后缀为log文件中
日志文件如下:
[root@myvm tmp]# cat 1.txt
1:ip:172.16.10.10:sdfslfjdlsf
1:ip:172.16.10.14:sdfslfjdlsf
1:ip:172.16.10.13:33dfslfjdlsf
1:ip:172.16.10.15:sdfslfjdlsf
1:ip:172.16.10.15:sdfslfjdlsf
1:ip:172.16.10.15:sdfslfjdlsf
1:ip:172.16.10.15:sdfslfjdlsf
1:ip:172.16.10.10:sdfslfjdlsf
1:ip:172.16.10.10:sdfslfjdlsf
1:ip:172.16.10.13:sdfslfjdlsf
1:ip:172.16.10.10:sdfslfjdlsf
1:ip:172.16.10.14:sdfslfjdlsf
1:ip:172.16.10.10:sdfslfjdlsf
执行操作如下:
cat 1.txt|cut -d ':' -f 3|sort|uniq -c|sort -nr|head -n 2 > /tmp/`date +%Y%m%d%H`.log
[root@myvm tmp]# cat 2016093015.log
5 172.16.10.10
4 172.16.10.15