Comment fusionner deux fichiers dans la ligne correspondante?

9

Maintenant, j'ai deux fichiers:

aaaa.txt:

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

bbbb.txt:

d=3
e=4
f=5

Je veux fusionner aaaa.txtet bbbb.txtà cccc.txt.

cccc.txt comme suit:

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

Alors, que puis-je faire pour cela?

binghenzq
la source

Réponses:

13

Vous pouvez utiliser de la pâte pour cela:

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

D'après votre question, il semble que le premier fichier contienne ;à la fin. Si ce n'est pas le cas, vous pouvez l'utiliser comme délimiteur en utilisant à la -d ';'place.

Notez que contrairement à ce que l'on peut penser, avec -d '\0', ce n'est pas coller avec un caractère NUL comme délimiteur, mais avec un délimiteur vide. C'est la manière standard de spécifier un délimiteur vide. Certaines pasteimplémentations comme GNU le pastepermettent paste -d '', mais ce n'est ni standard ni portable (de nombreuses autres implémentations rapporteront une erreur sur le délimiteur manquant si vous utilisez paste -d '').

Chris Down
la source
@ Chris Down - Merci beaucoup, ça marche. Au fait, une autre question: awk '{sed' s /.*,/ 999 / g '}' cccc.txt pourquoi il retourne awk: {sed s /.* , / 999 / g} awk: ^ erreur de syntaxe. Qu'est ce qui ne va pas avec ça?
binghenzq
Je ne suis pas tout à fait sûr de ce que vous essayez de faire, mais vous ne pouvez pas simplement passer sed à awk comme ça ...
Chris Down
@ Chris Down - Thans, je comprends.
binghenzq
Veuillez poser des questions distinctes ainsi que des questions distinctes. Il les rend utiles pour les utilisateurs ultérieurs (possible de trouver!).
vonbrand