Reputation: 37
I am looking to merge two text files into one, where all the lines from one text file become odd line numbers and the other file becomes even line numbers such as to weave the files together
input1.txt
1, 267, Note_on_c, 0, 67, 100
1, 758, Note_on_c, 0, 58, 100
1, 1248, Note_on_c, 0, 79, 100
1, 1739, Note_on_c, 0, 52, 100
input2.txt
1, 368, Note_off_c, 0, 67, 127
1, 936, Note_off_c, 0, 58, 127
1, 1415, Note_off_c, 0, 79, 127
1, 1917, Note_off_c, 0, 52, 127
and need to combine these text files to create the following output
1, 267, Note_on_c, 0, 67, 100
1, 368, Note_off_c, 0, 67, 127
1, 758, Note_on_c, 0, 58, 100
1, 936, Note_off_c, 0, 58, 127
1, 1248, Note_on_c, 0, 79, 100
1, 1415, Note_off_c, 0, 79, 127
1, 1739, Note_on_c, 0, 52, 100
1, 1917, Note_off_c, 0, 52, 127
so I am looking to merge these files in the true since of the word weave
Upvotes: 1
Views: 390
Reputation: 36048
Another alternative would be using paste
with a newline as delimiter
paste -d '\n' input1.txt input2.txt
1, 267, Note_on_c, 0, 67, 100
1, 368, Note_off_c, 0, 67, 127
1, 758, Note_on_c, 0, 58, 100
1, 936, Note_off_c, 0, 58, 127
1, 1248, Note_on_c, 0, 79, 100
1, 1415, Note_off_c, 0, 79, 127
1, 1739, Note_on_c, 0, 52, 100
1, 1917, Note_off_c, 0, 52, 127
From man paste
:
Write lines consisting of the sequentially corresponding lines from each FILE
Upvotes: 6
Reputation: 88583
With GNU sed
's R
command:
sed 'R input2.txt' input1.txt
Output:
1, 267, Note_on_c, 0, 67, 100 1, 368, Note_off_c, 0, 67, 127 1, 758, Note_on_c, 0, 58, 100 1, 936, Note_off_c, 0, 58, 127 1, 1248, Note_on_c, 0, 79, 100 1, 1415, Note_off_c, 0, 79, 127 1, 1739, Note_on_c, 0, 52, 100 1, 1917, Note_off_c, 0, 52, 127
From man sed
:
R filename
: Append a line read from filename. Each invocation of the command reads a line from the file. This is a GNU extension.
Upvotes: 5