Reputation: 2743
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:
fileresult.txt
--------------
linef11 linef21
linef12 linef22
linef13 linef23
. .
. .
. .
How can this be done in Bash?
Upvotes: 228
Views: 192309
Reputation: 378
You can use paste with the delimiter option if you want to merge and separate two texts in the file
paste -d "," source_file1 source_file2 > destination_file
Without specifying the delimiter will merge two text files using a Tab delimiter
paste source_file1 source_file2 > destination_file
Upvotes: 7
Reputation: 342313
here's non-paste methods
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<&-
Upvotes: 25
Reputation: 8774
Check
man paste
possible followed by some command like untabify
or tabs2spaces
Upvotes: 10
Reputation: 838066
You can use paste
:
paste file1.txt file2.txt > fileresults.txt
Upvotes: 356