Você pode usar sed
para substituir a segunda guia por 3 guias, se a linha não contiver uma barra vertical:
paste file{1..3} | sed '/|/!s/\t/\t\t\t/2'
Eu tenho 3 arquivos
arquivo1:
compute-0-44
compute-0-2
compute-0-7
compute-0-8
arquivo2:
0
11/29/2017 | 02:01:34
0
05/16/2018 | 08:47:56
arquivo3:
0
963
0
459
Quando faço paste file1 file2 file 3
, obtenho:
compute-0-44 0 0
compute-0-2 11/29/2017 | 02:01:34 963
compute-0-7 0 0
compute-0-8 05/16/2018 | 08:47:56 459
O que eu quero é:
compute-0-44 0 0
compute-0-2 11/29/2017 | 02:01:34 963
compute-0-7 0 0
compute-0-8 05/16/2018 | 08:47:56 459
É possível usar colar? Se houver outras alternativas como sed, isso também servirá ao propósito.
Usando o comando pr
:
$ pr -mT file{1..3} | expand
compute-0-44 0 0
compute-0-2 11/29/2017 | 02:01:34 963
compute-0-7 0 0
compute-0-8 05/16/2018 | 08:47:56 459
De man pr
:
-m, --merge print all files in parallel, one in each column, truncate lines, but join lines of full length with -J
O canal através de expand
converte os separadores em espaços - dependendo da sua aplicação, você pode não precisar disso (eu realmente só o adicionei aqui para fazer a saída parecer formatada corretamente neste site).