![첫 번째 열을 기준으로 여러 열을 두 개의 열로 분할하는 방법](https://linux55.com/image/111184/%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%EC%97%B4%EC%9D%84%20%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C%20%EC%97%AC%EB%9F%AC%20%EC%97%B4%EC%9D%84%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20%EC%97%B4%EB%A1%9C%20%EB%B6%84%ED%95%A0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
아래와 같이 탭으로 구분된 열 텍스트가 있습니다.
A 1 12 13
B 3 4 5
C 6 17 8
D 19 10 11
위의 표를 아래와 같이 변환하려면 어떻게 해야 합니까?
A 1
A 12
A 13
B 3
B 4
B 5
C 6
C 17
.
.
.
답변1
awk를 사용하세요:
$ awk '{for (i=2;i<=NF;i++) print $1,$i}' file
A 1
A 12
A 13
B 3
B 4
B 5
C 6
C 17
C 8
D 19
D 10
D 11
출력을 탭으로 구분하려면 다음 OFS
변수를 사용할 수 있습니다.
$ awk -v OFS='\t' '{for (i=2;i<=NF;i++) print $1,$i}' file
A 1
A 12
A 13
B 3
B 4
B 5
C 6
C 17
C 8
D 19
D 10
D 11