Imprimindo um arquivo em colunas com quantidade arbitrária de linhas

1

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.

    
por isamert 05.10.2018 / 14:29

2 respostas

3

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)
    
por 05.10.2018 / 14:58
0

Outra opção é usar paste :

paste <(sed '1,3!d' infile) <(sed '4,5!d' infile) <(sed '6,$!d' infile)
    
por 05.10.2018 / 15:26