196 votes

Comment concaténer deux fichiers ligne par ligne en utilisant bash

J'ai deux fichiers texte, chacun d'eux contient une information par ligne telle que celle-ci

file1.txt            file2.txt
----------           ---------
linef11              linef21
linef12              linef22
linef13              linef23
 .                    .
 .                    .
 .                    .

Je voudrais concaténer ces fichiers ligne par ligne en utilisant un bash script afin d'obtenir :

fileresult.txt
--------------
linef11     linef21
linef12     linef22
linef13     linef23
 .           .
 .           .
 .           .

Comment puis-je faire en utilisant un bash script ?

Merci d'avance pour vos réponses.

300voto

Mark Byers Points 318575

Vous pouvez utiliser paste :

paste file1.txt file2.txt > fileresults.txt

20voto

ghostdog74 Points 86060

voici des méthodes sans collage

awk

awk 'BEGIN {OFS=" "}{
  getline line < "file2"
  print $0,line
} ' file1

Bash

exec 6<"file2"
while read -r line
do
    read -r f2line <&6
    echo "${line}${f2line}"
done <"file1"
exec 6<&-

12voto

vtha Points 117

Essayez de suivre.

pr -tmJ a.txt b.txt > c.txt

8voto

Vérifiez

man paste

suivi éventuellement d'une commande comme untabify ou tabs2spaces

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X