編集済み
example.dat ファイルの内容は次のとおりです。
AAA*00* *00* *66*1234567890 *ZZ*ASD-LKJ *170630*1933*U*00401*100000023*0*P*\~SS*IN*2035735845*JWN-DSD*20660606*0606*1023*X*DF4WE43R4RA~BIG*20660606*2771417*19990919*88146417~GE*3*1023~IEA*1*100000023~
必要なデータはセグメント内にあります。セグメントは、~
要素と呼ばれる必要なデータに分けられます。要素はで区切ります*
。
これらの文字列を見つけるパターンは次のとおりです。
Segments Element number Needed Data
AAA 6th, 8th & 13th 1234567890, ASD-LKJ & 100000023
SS 6th 1023
BIG 4th 88146417
GE 1st 3
このデータを出力できるコマンドはありますか?
100000023 1023 3 1234567890 ASD-LKJ 88146417
注:実際には、ファイルには非常に長い文字列セットと多数のセグメントが含まれていますが、セグメントのパターンと要素が配置されている場所は同じままです。
答え1
すると、サンプルデータがサンプル出力形式で出力されます。
$ cat script.awk
BEGIN { FS="*"; }
$1=="AAA" { printf "%s\n%s\n%s\n", $7, $9, $14 }
$1=="SS" { print $7 }
$1=="BIG" { print $5 }
$1=="GE" { print $2 }
$ awk -f script.awk example.dat
1234567890
ASD-LKJ
100000023
1023
88146417
3