Awk を使用して処理したいレガシー システムのデータ ファイルがいくつかあります。各ファイルは、レコードのリストで構成されています。いくつかの異なるレコード タイプがあり、各レコード タイプには異なる固定幅フィールドのセットがあります (フィールド区切り文字はありません)。レコードの最初の 2 文字はタイプを示しており、これからどのフィールドが続くかがわかります。ファイルは次のようになります。
AAField1Field2LongerField3
BBField4Field5Field6VeryVeryLongField7Field8
CCField99
Gawk を使用してFIELDWIDTHSを設定できますが、それはファイル全体に適用されます (レコードごとにこれを設定する方法がない場合を除きます)。または、FS を "" に設定してファイルを 1 文字で処理することもできます。時間ですが、それは少し面倒です。
Awk を使用してそのようなファイルからフィールドを抽出する良い方法はありますか?
編集:はい、Perl(または他のもの)を使用できます。ただし、Awkでそれを行う賢明な方法があるかどうかを知りたいと思っています。