web-dev-qa-db-fra.com

Comment fusionner deux fichiers ligne par ligne dans Bash

J'ai deux fichiers texte, chacun contenant une information par ligne telle que

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

Je souhaite fusionner ces fichiers lignes par lignes en utilisant un script bash afin d'obtenir:

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

Comment cela peut-il être fait dans Bash?

155
semteu

Vous pouvez utiliser paste :

paste file1.txt file2.txt > fileresults.txt
241
Mark Byers

voici des méthodes non collées

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<&-
19
ghostdog74

Essayez de suivre.

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

Vérifier

man paste

possible suivi d'une commande comme untabify ou tabs2spaces

8