将粘贴与行优先输入一起使用

将粘贴与行优先输入一起使用

paste我可以通过这样的单列输入创建一个包含多列的文件:

some_command | paste - -

some_command当以列主格式生成数据时,此方法有效。换句话说,输入

1
2
3
4

结果输出

1   2
3   4

然而,我想要相反的,即我想要

1   3
2   4

背景:我想收集所有第'列来自中号文件合并到一个聚合文件中。我尝试通过以下方式执行此操作:

cut -f 5 "${files[@]}" | paste - - - - - …

(和中号 -s)。但如前所述,这不起作用,正如paste预期的列主输入一样。我忍不住认为应该有一个 coreutils (或纯 Bash)解决方案。

答案1

如果我正确理解了这个问题,你可以尝试pr

cut -f 5 "${files[@]}" | pr -5 -s' ' -t -l 40

其中-5是列数,-s' '是分隔符(空格),-l 40是页长(40 行)。


没有的话coreutils,人们可以用来split创造一些线路:

分割-l内菲莱

或者

一些命令 |分割-l

然后paste他们在一起:

paste x* > outfile
rm x*

相关内容