如果我打开了一个新问题,很抱歉,但它与上一个问题无关,因为现在我需要一个bash命令来分析输出。
我将query的输出存储在一个文件中,如下所示:
3277654321 333011123456789
3277654321 333015123456789
3277654321 333103123456789
3277654321 333201123456789
3291234567 333991123456789
3291234567 333991123456789
3291234567 333011123456789我需要一个bash命令来计算具有相同前5位数的field1和field2,并报告如下输出:
3277654321=4;33301=2;33310=1;33320=1
3291234567=3;33399=2;33301=1谢谢卢卡斯。
发布于 2015-01-18 15:34:28
朋友们,我想分享一个“优雅”的解决方案。感谢其他社区用户,他们为我提供了一些建议。
awk 'NR>0 {C1[$1]++
C2[$1,substr($2,1,5)]++
}
END {for (c2 in C2) {split (c2, cx, SUBSEP); print cx[1] "=" C1[cx[1]] ";" cx[2] "=" C2[c2]}}
' SUBSEP=";" out.txt | sort | awk '$1 != L {printf "%s%s", LT, $1; L=$1; LT="\n"}
{printf ";%s", $2}
END {printf "\n"}
' FS=";"
3277654321=4;33301=2;33310=1;33320=1
3291234567=3;33399=2;33301=1rici,这不是我要求别人为我写代码的情况。这只是一个大脚本中非常小的一部分,所以我只是请求帮助如何做一件小事情。我对不同的方法很感兴趣,这就是为什么我不提供任何代码示例的原因。感谢所有参与这个问题的SO用户,我仍然愿意尝试不同的方法。
https://stackoverflow.com/questions/28001979
复制相似问题