首页 > 解决方案 > 如何选择垂直列到水平列?

问题描述

我有一个文件 txt,其数据如下:

k1|k2|k3
1|65|98
2|42|55
3|21|56
4|76|89
5|34|93
6|78|22

我想像这样转换数据:

k1|1|2|3|4|5|6
k2|65|42|21|76|34|78
k3|98|55|56|89|93|22

任何帮助都可以给我很好的教训。顺便说一句,我是编码新手,我想学习 shell 脚本。谢谢你

标签: shellawk

解决方案


使用GNU datamash 让它变得微不足道:

$ datamash -t'|' transpose < input.txt
k1|1|2|3|4|5|6
k2|65|42|21|76|34|78
k3|98|55|56|89|93|22

推荐阅读