Você pode usar a funcionalidade merge
de pr
, que mescla vários arquivos em colunas.
Algo como isso funcionaria:
pr -J -m <(sed -n 1,3p file) <(sed -n 4,5p file) <(sed -n 6,9p file)
Eu tenho este arquivo:
line1
line2
line3
line4
line5
line6
line7
line8
line9
E eu quero imprimir em 3 colunas com essa estrutura para que a primeira coluna tenha linhas 1-2-3
, a segunda coluna tenha as linhas 4-5
e a última coluna tenha as linhas 6-7-8-9
(ou o restante do arquivo ):
line1 line4 line6
line2 line5 line7
line3 line8
line9
Essencialmente eu quero imprimir um arquivo de forma que a saída seja distribuída para as colunas N e cada coluna tenha uma quantidade predeterminada (e possivelmente diferente uma da outra) de linhas. Se possível, quero preservar os espaços iniciais / finais nas linhas. Como posso fazer isso?
Eu brinquei com columns
e pr
, mas não consegui nem chegar perto.
Outra opção é usar paste
:
paste <(sed '1,3!d' infile) <(sed '4,5!d' infile) <(sed '6,$!d' infile)