gawk を使用したデータのマージ

gawk を使用したデータのマージ

私のデータは次のとおりです。例:

454|12 13 |人民電話(チャイナモバイル香港)|0.0118
454|06 15 17 |SmarTone モバイルコミュニケーション(P Plus)|0.0412

私はUnix / Linuxに初めて触れました。次のようにデータを入力できるコマンドがあるかどうかを知りたいです。

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;}'

関連情報