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.