다음과 같은 입력 파일(input.txt)이 있습니다.
Main1 one,two,three,four
Main2 five,six,seven,eight
출력 파일(output.txt)에서 다음과 같은 출력을 얻고 싶습니다.
Main1 one
Main1 two
Main1 three
Main1 four
Main2 five
Main2 six
Main2 seven
Main3 eight
답변1
awk '{ split($2,a,","); for (i in a) print $1, a[i]; }' input.txt
예:
~) $ 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
답변2
다음은 몇 가지 옵션입니다.
껍데기
while read main rest; do for i in ${rest//,/$'\n'}; do echo $main $i done done < file
펄
perl -lane 'print "$F[0] $_" for split(/,/,$F[1])' file
앗
awk -F'[, ]' '{for(i=2;i<=NF;i++){print $1,$i}}' file