如何用Linux命令或Bash按第三列分组输出第六列内容
解决方案
用awk就能轻松实现按第三列分组合并第六列的需求,无需提前指定第三列的具体数值,命令如下:
awk '{arr[$3] = arr[$3] $6 " "} END {for (key in arr) {sub(/ $/, "", arr[key]); print arr[key]}}' 你的文件名.txt
命令说明:
arr[$3] = arr[$3] $6 " ":定义关联数组arr,以每行第三列的值作为数组键,将当前行第六列值追加到对应键的数组元素后,用空格分隔。END块:所有行处理完成后执行遍历操作:sub(/ $/, "", arr[key]):移除每个数组元素末尾多余的空格,避免最后一个值后留空print arr[key]:输出合并后的第六列值
扩展:同时输出第三列的分组键
如果希望输出时带上第三列的对应值(比如格式为1: 4 103),可以修改print语句:
awk '{arr[$3] = arr[$3] $6 " "} END {for (key in arr) {sub(/ $/, "", arr[key]); print key ": " arr[key]}}' 你的文件名.txt
内容的提问来源于stack exchange,提问作者user19619903
相关产品推荐
相关产品推荐

