열 1 값을 기준으로 여러 열을 두 열로 병합하는 방법은 무엇입니까?

열 1 값을 기준으로 여러 열을 두 열로 병합하는 방법은 무엇입니까?

다음 예제 형식의 텍스트 파일이 있습니다.

파일.txt

Record1 20 23;
Record2 256;
Record3 45 679 98 1;

각 행의 열 수는 다를 수 있습니다. 열 1 값을 기준으로 두 개의 열만 포함하는 파일을 변경하고 싶습니다. 다음은 목표 출력입니다.

File_2_Columns.txt

Record1 20;
Record1 23;
Record2 256;
Record3 45;
Record3 679;
Record3 98;
Record3 1;

답변1

이것은 한 가지 방법입니다

awk '{for(a=2;a<=NF;a++){printf "%s %s%c\n",$1,$a,a==NF ? "" : ";"}}' File.txt >File_2_Columns.txt

나머지 숙제도 잘 마무리하시길 바랍니다 ;-)

교사가 최단 답변에 추가 점수를 주는 경우 다음을 시도해 보세요.

awk '{for(a=2;a<=NF;){printf"%s%c\n",$1" "$a,a++-NF?";":""}}' File.txt >File_2_Columns.txt

관련 정보