Linux處理格式化檔案(awk、sort等)
阿新 • • 發佈:2019-01-10
目前有這樣的一些資料,獲取按照‘‘|’’ 分隔,按照第二列求第三列的和並按照和降序排序取前10資料
#用'|'分隔,按照第三列數值降序排序取前10
cat part-r-0000*|sort -t "|" -k3rn|head -10
#獲取按照'|' 分隔,按照第二列求第三列的和 => 取和不為0的 => 按照和降序排序 => 取前10
cat ./*|awk -F "|" '{sum[$2]+=$3}END{for(c in sum){print c,sum[c]}}'|awk '$NF!=0{print $0}'|sort -k2nr|head -10
#獲取上一步結果第一行的原始資訊(根據第一列的值去查詢) awk -F "|" '$2==423670{print $0}' ./part-r-0000* >423670.log
#統計xdr裡有mr沒有enodebid cat part-r-0000*|awk -F "|" '$3!=0&&$4==0&&$NF==0{print $2}'|uniq -c|awk '{print $2}'|wc -l #統計xdr沒有mr有的enodebid cat part-r-0000*|awk -F "|" '$3==0{print $2}'|uniq -c|awk '{print $2}'|wc -l #統計回填失敗的明細(都失敗、部分失敗) cat part-r-0000*|awk -F "|" '($3!=0&&$4!=0&&$5!=0)||($3!=0&&$4!=0&&$5==0) {print $0}'|wc -l #統計回填失敗的enodebid(都失敗、部分失敗) cat part-r-0000*|awk -F "|" '($3!=0&&$4!=0&&$5!=0)||($3!=0&&$4!=0&&$5==0) {print $2}'|uniq -c|awk '{print $2}'|head -10 #統計回填失敗的佔比 cat part-r-0000*|awk -F "|" '($3!=0&&$4!=0&&$5!=0)||($3!=0&&$4!=0&&$5==0) {print $0}'|awk -F "|" '{sumTotal[$2] += ($4+$5);sumNo[$2]+=$4}END{for(c in sumTotal){print c,sumNo[c],(sumNo[c]/sumTotal[c])}}'|sort -k3rn|head -10