如何将文件中垂直排列的多列数据转换为水平排列?
空行分隔的垂直列转水平行解决方案
使用awk命令实现
直接执行以下命令即可完成转换(将input.txt替换为你的实际文件名):
awk -v RS= '{for(i=1;i<=NF;i++) a[i] = a[i] (a[i] == "" ? "" : " ") $i} END{for(i in a) print a[i]}' input.txt
命令逻辑说明
-v RS=:把空行设置为记录分隔符,这样每一组垂直列会被识别为一个独立的记录- 循环遍历每个记录的每一行,将对应位置的内容拼接进数组
a的对应元素中,同时处理空格避免开头或末尾多余空格 - 所有记录处理完成后,遍历数组输出拼接好的每一行
效果验证
原文件内容:
123 456 789 789 456 123 456 123 789
执行命令后输出:
123 789 456 456 456 123 789 123 789
内容的提问来源于stack exchange,提问作者Piyushkumar Patel
相关产品推荐
相关产品推荐

