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?

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 - 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.