awkのFIELDWIDTHを使って固定長ファイル分割してみた

その他

COBOLで固定長ファイルを扱っているのですが、固定長って人間が見るのは項目ごとに分割しないときついんですよね

簡単に分割出来る方法を色々検討してみた結果「GNU awk(gawk)」が良さそうなので使ってみました。

最近のLinuxディストリビューションではawkgawkのシンボリックリンクになっていると思います。

ちなみに私が使用していたLinuxディストリビューションはgawkさえ入っていませんでした…

FIELDWIDTHを利用して固定長で分割するサンプル

gawkにあるFIELDWIDTHSと呼ばれる分割方法を用います。

以下は固定長の入力をタブ区切りにするサンプルになります。

#! /usr/bin/gawk -f
BEGIN {
    FIELDWIDTHS = "2 3 54 20 10";
    OFS="\t"
}
{
    print($1, $2, $3, $4, $5);
}

コメント