Unindo dois arquivos da linha de comando em um ambiente Linux

5

Estou procurando uma solução para o seguinte problema simples. Eu tenho dois arquivos, fileA e fileB . Cada arquivo contém apenas uma palavra por linha e contém exatamente o mesmo número de linhas.

Eu gostaria de criar um novo arquivo chamado fileAB , onde a i-ésima linha contém a i-ésima linha de fileA , um caractere separador Tab e, em seguida, a i-ésima linha de fileB . Eu sei como fazer isso em Python ou outras linguagens de script, mas seria bom ter uma linha de base para isso.

É possível fazer isso no bash ou em qualquer outro shell Unix, usando as ferramentas que normalmente estão disponíveis na linha de comando (por exemplo, sed , awk e outras)?

    
por Tamás 21.10.2010 / 17:31

2 respostas

12

Você quer paste .

paste fileA fileB > fileAB
    
por 21.10.2010 / 17:33
0

parallel --xapply -j1 -a file_1 -a file_2 echo {} > file_12

ou um estilo alternativo

parallel --xapply -k echo :::: file_1 :::: file2 > file_12

O arquivo mais curto irá agrupar suas linhas para corresponder ao comprimento do arquivo mais longo (se você quiser esse comportamento)

    
por 09.10.2014 / 08:28