unix - How to merge two files line by line in Bash


I have two text files, each of them contains an information by line such like that

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

I would like to merge theses files lines by lines using a bash script in order to obtain:

linef11     linef21
linef12     linef22
linef13     linef23
 .           .
 .           .
 .           .

How can this be done in Bash?

All Answers
  • Translate

    You can use paste:

    paste file1.txt file2.txt > fileresults.txt

  • Translate

    here's non-paste methods


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


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

  • Translate

    Try following.

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

  • Translate


    man paste

    possible followed by some command like untabify or tabs2spaces