kshスクリプトでこのコマンドを使用して、sed -e '/^*/d' $WORKFILE | awk -f test.awk >> $OUTPUTFILE
次のように274567行のファイルをインポートします。
*
*
*
*
*
syopsf00
a0000096
782 1
CAStmtInv
syopsf00
a0000096
782 1
USStmtInv
syopsf00
a0000096
606 1
CAStmtInv
syopsf00
a0000096
606 1
USStmtInv
syopsf00
a0000096
23472 4
AO
syopsf00
a0000096
23472 4
Dealer
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
次の行を含むファイルを生成します。
syopsf00 a0000096 782 1 CAStmtInv
syopsf00 a0000096 782 1 USStmtInv
syopsf00 a0000096 606 1 CAStmtInv
syopsf00 a0000096 606 1 USStmtInv
しかし、私が得るもの
syopsf00 a0000096 782 1 CAStmtInv
awkスクリプト(test.awk)は次のとおりです。
BEGIN {
RS="\n\n";
FS=" ";
}
END {
print $1,$2,$3,$4,$5;
}
ベストアンサー1
正確に何をしようとしているのか(入力に応じて)完全には明確ではありませんが、出力の問題はENDステートメントに印刷を入れるため、awkに供給された最後の行だけが印刷されることです。
次のようにする必要があります。
BEGIN {
RS="\n\n"; FS=" ";
}
{
print $1,$2,$3,$4,$5;
}
注:インデントは私の個人的な好みです。