我有 2 行输出如下:
a b c
x y z
我想将最后一个命令的两行通过管道传输到一个脚本中,该脚本将它们“交错”组合在一起,如下所示:
a x b y c z
该解决方案应该适用于输出中的随机列数,例如:
a b c d e
x y z x y
应该导致:
a x b y c z d x e y
到目前为止,我已经尝试使用 awk、perl、sed 等...但没有成功。我所能做的就是将输出放在一行中,但它不会“交错”:
$ echo -e 'a b c\nx y z' | tr '\n' ' ' | sed 's/$/\n/'
a b c x y z
最佳答案
将奇数记录的字段保存在一个数组中,并使用它更新偶数记录的字段。这将交错输入中的每对连续行。
prog | awk 'NR%2{split($0,a);next} {for(i in a)$i=(a[i] OFS $i)} 1'
关于bash - 将 2 行组合在一起但 "interlaced",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57663951/