Shell – How to Merge Two Files by Corresponding Rows

pasteshelltext processing

Now,I have two files:

aaaa.txt:

a=0;
b=1;
c=2;

bbbb.txt:

d=3
e=4
f=5

I want to merge aaaa.txt and bbbb.txt to cccc.txt.

cccc.txt as follow:

a=0;d=3
b=1;e=4
c=2;f=5

So, what can I do for this?

Best Answer

You can use paste for this:

paste -d '\0' aaaa.txt bbbb.txt > cccc.txt

From your question, it appears that the first file contains ; at the end. If it didn't, you could use that as the delimiter by using -d ';' instead.

Note that contrary to what one may think, with -d '\0', it's not pasting with a NUL character as the delimiter, but with an empty delimiter. That is the standard way to specify an empty delimiter. Some paste implementations like GNU paste allow paste -d '' for that, but it's neither standard nor portable (many other implementations will report an error about the missing delimiter if you use paste -d '').

Related Question