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.