Comando “colar - - - -”, como especificar um número de coluna grande

0

No comando paste - - - - , os números de - são iguais ao número da coluna futura. No meu caso, tenho 55.000 coluna futura, para mim não precisarei colocar 55.000 - o que eu vou poder usar?

Exemplo:

title1:A1
title2:A2
title3:A3
title4:A4
title5:A5

title1:B1
title2:B2
title3:B3
title4:B4
title5:B5

title1:C1
title2:C2
title3:C3
title4:C4
title5:C5

title1:D1
title2:D2
title3:D3
title4:D4
title5:D5

Eu quero transformar este arquivo (A) no seguinte:

title1 A1   title1 B1   title1 C1   title1 D1   title2 A2
title2 B2   title2 C2   title2 D2   title3 A3   title3 B3
title3 C3   title3 D3   title4 A4   title4 B4   title4 C4
title4 D4   title5 A5   title5 B5   title5 C5   title5 D5

Para isso, usei:

$ sed 's/:/ /; /^$/d' sample.txt \
    | sort | paste - - - - -

Mas no meu arquivo, terei um número de coluna grande: 55.000 ou 400 colunas. Qual é a outra forma para substituir o - ??

    
por Amanda Botelho Alvarenga 13.07.2016 / 14:09

2 respostas

0

Faça um truque de multiplicação de sequências com base nesta resposta: link

Use a substituição para inserir o número programável de traços

paste $(for i in {1..400}; do echo -n '- '; done)

ou

paste $(printf -- "- %.s" {1..400})

Para saber por que printf -- foi usado: Traços no printf

    
por 13.07.2016 / 14:43
0

Para um arquivo com 4 linhas:

 paste $(for((i=1;i<4;i++)); do echo -n "- "; done; echo -n "-") < file
    
por 13.07.2016 / 14:42