새 파일의 다음 줄에 쉼표로 구분된 단어가 있음

새 파일의 다음 줄에 쉼표로 구분된 단어가 있음

다음과 같은 입력 파일(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

다음은 몇 가지 옵션입니다.

  1. 껍데기

    while read main rest; do 
        for i in ${rest//,/$'\n'}; do 
            echo $main $i
        done
     done < file 
    
  2. perl -lane 'print "$F[0] $_" for split(/,/,$F[1])' file
    
  3. awk -F'[, ]' '{for(i=2;i<=NF;i++){print $1,$i}}' file
    

관련 정보