一. 简介
sort命令是帮我们依据不同的数据类型进行排序。
二. 语法
sort [-bcfMnrtk][源文件][-o 输出文件]
补充说明:sort可针对文本文件的内容,以行为单位来排序(默认为字典序)。
参 数:
-b | 忽略每行前面开始出的空格字符。 |
-c | 检查文件是否已经按照顺序排序。 |
-f | 排序时,忽略大小写字母。 |
-M | 将前面3个字母依照月份的缩写进行排序。 |
-n | 依照数值的大小排序。 |
-o | <输出文件>将排序后的结果存入指定的文件。 |
-r | 以相反的顺序来排序。 |
-t | <分隔字符>指定排序时所用的栏位分隔字符。 |
-k | 选择以哪个区间进行排序。 |
-u | 去重。 |
三. 简例
如果有一个文件的内容是这样:
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
[rocrocket@rocrocket programming]$ sort -n -k 2 -t ‘:’ facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
如果要统计重复的行数
$sort|uniq -c
$sort -n ids.txt |uniq -c|sort -k 1 -n -r>sorted.txt
求访问前10的ip及数量
awk '{ips[$1]++} END {for(ip in ips) print ip" "ips[ip]}' access.log| sort -k2 -r | head -n 10 awk '{print $1}' access.log| uniq -c| sort -k1 -n -r | head -n 10