著者:坂東 勝也
ユニケージでは、小さな道具の「コマンド」をシェルスクリプトで組み合わせて、さまざまな業務システムを構築しています。本連載では、毎回あるテーマに従ってユニケージによるシェルスクリプトの記述例を分かりやすく紹介します。第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