固定長ファイルを特定の文字数ごとに分割するためにawkで処理してみた

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

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

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

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

 

分割サンプル

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

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

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

スポンサーリンク