Como mesclar dois arquivos na linha correspondente?

9

Agora, tenho dois arquivos:

aaaa.txt:

a=0;
b=1;
c=2;

bbbb.txt:

d=3
e=4
f=5

Eu quero mesclar aaaa.txte bbbb.txtfazer cccc.txt.

cccc.txt como se segue:

a=0;d=3
b=1;e=4
c=2;f=5

Então, o que posso fazer por isso?

binghenzq
fonte

Respostas:

13

Você pode usar colar para isso:

paste -d '\0' aaaa.txt bbbb.txt > cccc.txt

Da sua pergunta, parece que o primeiro arquivo contém ;no final. Caso contrário, você pode usar isso como delimitador usando -d ';'.

Observe que, ao contrário do que se pensa, -d '\0'não é colar com um caractere NUL como delimitador, mas com um delimitador vazio. Essa é a maneira padrão de especificar um delimitador vazio. Algumas pasteimplementações como o GNU pastepermitem paste -d ''isso, mas não é padrão nem portátil (muitas outras implementações reportarão um erro sobre o delimitador ausente, se você usar paste -d '').

Chris Down
fonte
@ Chris Down - Muito obrigado, está funcionando. A propósito, outra pergunta: awk '{sed' s /.*,/999 / g '}' cccc.txt por que retornar awk: {sed s /.* , / 999 / g} awk: ^ erro de sintaxe. O que há de errado com isso?
binghenzq
Eu não estou totalmente certo de que você está tentando fazer, mas você não pode apenas passar sed para awk assim ...
Chris Baixo
@ Chris Down - Thans, eu entendi.
binghenzq
Faça perguntas separadas, bem como perguntas separadas. Torna-os úteis para usuários posteriores (possível encontrar!).
21416 vonbrand