我有这个文件:
line1
line2
line3
line4
line5
line6
line7
line8
line9
我想用这种结构跨 3 列打印它,以便第一列有lines 1-2-3
,第二列有lines 4-5
,最后一列有lines 6-7-8-9
(或文件的其余部分):
line1 line4 line6
line2 line5 line7
line3 line8
line9
本质上我想以输出分发到的方式打印文件氮列,每列都有预定的(并且可能彼此不同)行数。如果可能的话,我想保留行中的前导/尾随空格。我怎样才能做到这一点?
我摆弄 和columns
,pr
但我什至无法接近。
答案1
您可以使用merge
的功能pr
,将多个文件合并到列中。
像这样的事情会起作用:
pr -J -m <(sed -n 1,3p file) <(sed -n 4,5p file) <(sed -n 6,9p file)
答案2
另一种选择是使用paste
:
paste <(sed '1,3!d' infile) <(sed '4,5!d' infile) <(sed '6,$!d' infile)