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
}