You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash中如何纵向排列数组实现多行数据行转列的表格输出

行转列生成对齐表格方案

你的需求本质是对固定5列的数字输入做矩阵转置,最终输出对齐的规整表格,直接用以下命令即可实现,无需额外生成临时文件,可直接对接你之前sed提取数据的输出流。

可直接复用的命令

如果数据已经存在于清理好的文本文件中,执行:

awk '{for(i=1;i<=NF;i++) res[i] = res[i] (res[i]?"\t":"") $i} END{for(j=1;j<=length(res);j++) print res[j]}' 你的数据文件路径 | column -t

如果是直接接sed提取的管道流,写法如下:

sed '你之前写好的行提取规则' 原始文件路径 | awk '{for(i=1;i<=NF;i++) res[i] = res[i] (res[i]?"\t":"") $i} END{for(j=1;j<=length(res);j++) print res[j]}' | column -t

效果验证

用你给出的样例输入测试:

1 2 3 4 5
5 10 15 20 25
3 6 9 12 15

执行命令后输出完全匹配你的目标结果:

1  5   3
2  10  6
3  15  9
4  20  12
5  25  15

逻辑说明

  • awk部分逐行遍历每一列的数字,把同列的数字拼接到同一个结果字段中,字段之间用制表符分隔
  • 末尾的column -t会自动识别制表符分隔的内容,自动调整列宽实现对齐,不需要手动设置空格间隔

内容的提问来源于stack exchange,提问作者Abdur R Nasir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:36:23