test.txt에 입력한 내용은 다음과 같습니다.
month,var1,var2
June,10,a
Sep,20,b
Dec,30,c
내가 원하는 출력은
month,variable,value
June,var1,10
June,var2,a
Sep,var1,20
Sep,var2,b
Dec,var1,30
Dec,var2,c
두 번째 열부터 시작하는 열 수는 동적입니다. 2개의 열 또는 100개의 열을 가질 수 있습니다. awk를 사용하여 데이터를 어떻게 전치할 수 있나요?
답변1
노력하다
$ awk -F, '
BEGIN{OFS=FS}
NR==1{n = split($0,a); print "month,variable,value"; next}
{for(i=2;i<4;i++) print $1,a[i],$i}
' file
month,variable,value
June,var1,10
June,var2,a
Sep,var1,20
Sep,var2,b
Dec,var1,30
Dec,var2,c
(이것은 전치라기보다는 폭발에 가깝습니다.)
답변2
awk -F, '
BEGIN{OFS=FS}
NR==1{n = split($0,a); print "month,variable,value"; next}
{for(i=2;i<NF;i++) if (a[i] !=""){ print $1,a[i],$i} }
' file