Comma separated words to next line in new file

awk

I have a input file like this (input.txt):

Main1 one,two,three,four 
Main2 five,six,seven,eight 

I want the output like this in output file (output.txt):

Main1 one
Main1 two
Main1 three
Main1 four

Main2 five
Main2 six
Main2 seven
Main3 eight

Best Answer

awk '{ split($2,a,","); for (i in a) print $1, a[i]; }' input.txt

Example:

~) $ echo -e "Main1 one,two,th\nMain2 five,six,seven,eight " | awk '{ split($2,a,","); for (i in a) print $1, a[i]; }'
Main1 one
Main1 two
Main1 th
Main2 five
Main2 six
Main2 seven
Main2 eight
Related Question