1. 程式人生 > >Linux處理格式化檔案(awk、sort等)

Linux處理格式化檔案(awk、sort等)

目前有這樣的一些資料,獲取按照‘‘|’’ 分隔,按照第二列求第三列的和並按照和降序排序取前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