公司業務須要,每天用awk統計數值而後排序,出問題了,以下:網站
count.sh 是一個統計腳本,把awk輸出的值按佔比、條數、類型 在從新輸出spa
awk -F\| '{print $16}' *MQTT* | ~/count.sh | sort -nk3
91.51% 345 0
Total 377
2.65% 10 1
5.84% 22 23d
0與1之間加了個total值,我想要的結果是total排在第一行,而後是的0、一、2,blog
後來找到的解決方法:排序
awk -F\| '{print $16}' *MQTT* | ~/count.sh | sort -nk3 -k2r
Total 377
91.51% 345 0
2.65% 10 1
5.84% 22 2教程
在第三列按照從小到大排序後,再把第二例按照倒序排列就好了。字符串
出現新的問題:博客
(1)有時候會出現按照第二例倒序排序失敗。 (之前工做中碰見)awk
(2)有時候在添加第二列排序後,整個排序混輪。(之前工做中碰見)終端
在多實驗了幾回後,能夠確定是選項 -n 有問題,找了一個寫博客時間久的,點擊量還不錯的,結果以下:
看紅色框裏內容,我看了好幾個博客 ,都是這樣解釋的。而後我又查看我自學的網站:菜鳥教程上,也是這麼解釋的。但就是解釋不通我上面的問題。我因而 sort --help,逐條看每一個選項,讀第二遍的時候,發現問題了:
-n 選項有數值改成了字符串 ;在 -r選項的旮旯裏,還有一個-g選項。按理來講,這個仔細看的話也是很容易發現的,可是我之前的三方終端顯示的是英文版,長長的一溜,就沒有仔細看過,我記得第一纔看時爲了方便,專門去博客園,就我上面截圖的那家仔細看了中文版的,悲催的發生了今天的事。而後我就把個人終端改成中文版的,細看sort詳解才發現這個問題。
來看-g的結果:
awk -F\| '{print $16}' *MQTT* | ~/count.sh | sort -gk3
Total 377
91.51% 345 0
2.65% 10 1
5.84% 22 2
完美。只能說,人家博客寫得那個年代,確實是那樣解釋的,可是到了如今,sont命令有了更細的更新,而我還在用之前的方法來解決如今的問題,有時候就不行了。咱們在相信前人的同時,更要本身動手來查找解決。
像上面發生的問題,其實在不少時候,根本就不是問題,對於我來講,假如我不是要把結果複製下來,爲了看起來更整齊一些,我根本就不會去仔細研究,發現-g 與-n區別,沒有追求完美的心態,得過且過,有問題,不可怕,可怕的是習慣的去遺忘。
謹記,再小的問題,也會引發連鎖反應引發大問題。