From: Indunil Jayasooriya indunil75@gmail.com
[root@centos67 loop]# cat file1 firstname1 firstname2
[root@centos67 loop]# cat file2 lastname1 lastname2
I need a OUTPUT like this
*firstname1 lastname1firstname2 lastname2*
But I try the below command , i get below output. what is the real
command
to get the above output
[root@centos67 loop]# for line1 in $(cat file1 ); do for line2 in
$(cat
file2 ); do echo "$line1" "$line2";done;done; firstname1 lastname1 firstname1 lastname2 firstname2 lastname1 firstname2 lastname2
And also, I created a file3 like this
[root@centos67 loop]# cat file3 firstname1 lastname1 firstname2 lastname2
How can I get the same OUTPUT ?
*firstname1 lastname1firstname2 lastname2*
scott@viviotech.net suggested this:
There's probably a better way using join, but this should do the trick:
paste <(cat file1 | tr "\n" ' ') <(cat file2 | tr "\n" " ")
I'd never used the paste command before, so I tried the above oneliner out and it did not work on my system. It printed all of file1 followed by all of file2.
An altered version of the paste command did work on my centos 7 system.
paste -d' ' file1 file2 Assuming the OP example output was a typo and there should be a space between the contents of file1 and file2. Otherwise remove or change the -d' '
Mike