sort -n -k 20,20 xx.txt > xx.txt
参考sort 博文linux
5 sort的-n选项app
你有没有遇到过10比2小的状况。我反正遇到过。出现这种状况是因为排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,因此就将10放在2前面喽。这也是sort的一向做风。spa
咱们若是想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!code
6 sort的-t选项和-k选项排序
若是有一个文件的内容是这样:get
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4ast
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。awk
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?cli
幸亏,sort提供了-t选项,后面能够设定间隔符。(是否是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符以后,就能够用-k来指定列数了。
[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
咱们使用冒号做为间隔符,并针对第二列来进行数值升序排序,结果很使人满意。
awk 分析数据
BEGIN {
sum = 0;
cnt = 0;
}
{ sum = sum + $20;
cnt++;
}
END {
avg = sum/cnt;
print avg, cnt
}