gawk를 사용하여 데이터 병합

gawk를 사용하여 데이터 병합

내 데이터는 다음과 같습니다. 예:

454|12 13 |인민전화(차이나 모바일 홍콩)|0.0118
454|06 15 17 |SmarTone 모바일 커뮤니케이션(P Plus)|0.0412

저는 유닉스/리눅스를 처음 접했습니다. 다음과 같이 데이터를 채울 수 있는 명령이 있는지 알고 싶습니다.

45412 | 인민전화(차이나 모바일 홍콩) |
0.0118
45406 | SmarTone 모바일 커뮤니케이션
(P Plus)
| 통신(P 플러스)|0.0412

gawk 명령을 사용하여 첫 번째 부분을 인쇄합니다.

(멍하니 'BEGIN{FS="|"}{print $1}'

그러나 모든 돌파구와 연결하는 데 실패했습니다. 당신의 도움이 필요합니다.

답변1

gawk 'BEGIN{FS="|"}{n=split($2,a," "); for (i = 1; i <=n ; i++) printf "%s%s|%s|%s\n", $1,a[i],$3,$4;}'

관련 정보