Unixスクリプトを使用したAWKの問題

Unixスクリプトを使用したAWKの問題

このファイルがあります。

AK3*BPS*2
AK4*8*0510*1
AK3*RMT*12
AK4*1*0128*7*CR

この出力が欲しい

BPS 2  1
RMT 12 7 CR

このコマンドを使用しています

awk -F* '$1=="AK3" { print $2, $3 } "\c" ($1=="AK4" { print $4, $5 }' $FileHome/badfile_$session_num.txt >>  $FileHome/input_output_record.txt

しかし、この結果が出てきます。

BPS 2
1
RMT 12
7 CR

どんなアドバイスも本当にありがとうございます。

ベストアンサー1

あなたは次をしたいようです:

  1. 各行の最後の2つのフィールドAK3の後に
  2. 自由闘争ラインの4番目と5番目AK4(5番目は失われる可能性があります)。
$ awk -F '*' '/^AK3/ { printf("%s\t%s", $2, $3) } /^AK4/ { printf("\t%s\t%s\n", $4, $5) }' data.in
BPS     2       1
RMT     12      7       CR

おすすめ記事