シェルスクリプトマガジン

ユニケージ新コードレビュー(Vol.62掲載)

著者:坂東 勝也

ユニケージでは、小さな道具の「コマンド」をシェルスクリプトで組み合わせて、さまざまな業務システムを構築しています。本連載では、毎回あるテーマに従ってユニケージによるシェルスクリプトの記述例を分かりやすく紹介します。第9回は、前回の続きとしてデータの扱い方について解説します。

シェルスクリプトマガジン Vol.62は以下のリンク先でご購入できます。

図2 LV3データ作成処理のコード(一部抜粋)

#######################################
# LV3 の作成

echo $lv2d/$today/PROFILE*   |  # /home/hoge/DATA/LV2/20190919/PROFILE*
tarr                         |
ugrep -v "\*"                > $tmp-list
ERROR_CHECK

# LV2 ファイルが存在した場合だけ処理
if [ -s "$tmp-list" ] ; then

        # LV2 ファイル
        # 1:管理番号        2:名前     3:ふりがな  4:アドレス    5:性別
        # 6:年齢            7:生年月日 8:婚姻      9:血液型      10:都道府県
        # 11:都道府県コード 12:携帯    13:キャリア 14:削除フラグ 15:オペレータ
        # 16:更新日付
        cat $tmp-list        |
        xargs cat            |
        msort key=1@NF       > $tmp-kousin
        ERROR_CHECK
)
        # 新規マスタの作成
        # 1:管理番号        2:名前     3:ふりがな  4:アドレス    5:性別
        # 6:年齢            7:生年月日 8:婚姻      9:血液型      10:都道府県
        # 11:都道府県コード 12:携帯    13:キャリア 14:削除フラグ 15:オペレータ
        # 16:更新日付
        up3 key=1@NF $lv3d/$yday/PROFILE $tmp-kousin | #前日マスタに本日LV2の情報をマージ
        # 最新の情報だけを残す
        getlast key=1                                | #管理番号ごとに最も新しいものだけを出力
        # 削除フラグ=1は除外
        delr 14 1                                    > $lv3d/$today/PROFILE
        ERROR_CHECK

        # マスタの置換
        cp $lv3d/$today/PROFILE $lv3d/PROFILE.new
        ERROR_CHECK
        mv $lv3d/PROFILE.new $lv3d/PROFILE
        ERROR_CHECK

fi