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?

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 - 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.