Linux处理格式化文件(awk、sort等)

版权声明:个人 https://blog.csdn.net/csdnmrliu/article/details/82684626

目前有这样的一些数据,获取按照‘‘|’’ 分隔,按照第二列求第三列的和并按照和降序排序取前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

猜你喜欢

转载自blog.csdn.net/csdnmrliu/article/details/82684626