著者:村本 禎実
ユニケージでは、小さな道具の「コマンド」をシェルスクリプトで組み合わせて、さまざまな業務システムを構築しています。本連載では、毎回あるテーマに従ってユニケージによるシェルスクリプトの記述例を分かりやすく紹介します。第4回は、Webブラウザからデータを参照・削除するためのサーバー側の処理です。
シェルスクリプトマガジン Vol.57は以下のリンク先でご購入できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
51 #################################################################### 52 # 画面表示用データ作成 53 #################################################################### 54 # 表示データ取得 55 # 1:部門コード 2:部門名称 3:担当者 4:適用開始日 5 56 # :適用終了日 6:適用フラグ(1:適用中 2:適用外) 7:登録日時 57 cat ${lv3d}/BUMON_MST | 58 # 現在適用中のレコードを抽出 59 awk '$4<="'${today}'"' | 60 awk '$5>="'${today}'"' | 61 # 部門コード、適用開始日、登録日時でソート 62 msort key=1@4@7 | 63 # 部門コードをキーとして重複を削除 64 getlast 1 1 | 65 # 適用フラグで判断 66 delr 6 2 | 67 # 部門コードを5桁にする 68 maezero 1.5 > ${tmp}-bumon_data 69 ERROR_CHECK |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
66 67 # LV1データ作成 68 # 適用フラグ 登録日時を作成 69 echo "2 ${todayhms}" > ${tmp}-lv1_del_flg 70 ERROR_CHECK 71 72 # 登録画面から移動してきたことを考え、TOROKUのレコードを除外 73 # 1:id名 2:チェックフラグ 74 cat ${tmp}-name | 75 # TOROKUが入っているレコードを除外 76 ugrep -v "TOROKU" > ${tmp}-name_del 77 ERROR_CHECK 78 79 # POSTされたデータが0バイトより大きいときに処理 80 if [ -s ${tmp}-name_del ] ; then 81 # 1:BUMON_部門コード 2:チェックフラグ(on) 82 cat ${tmp}-name | 83 # 画面でチェックされたものを取得 84 selr 2 on | 85 # 第1フィールドを取得 86 self 1 | 87 # 1:BUMON_部門コード 88 # 余分な文字列を削除 89 sed 's/BUMON_//g' | 90 # 1:部門コード 91 # 部門コードを5桁にする 92 maezero 1.5 | 93 # 部門コードでソート 94 msort key=1 | 95 # LV3ファイルから削除対象のレコードを抽出 96 cjoin0 key=1 - ${lv3d}/BUMON_MST | 97 # 1:部門コード 2:部門名称 3:担当者 4:適用開始日 5 98 # :適用終了日 6:適用フラグ(1:適用中 2:適用外) 7:登録日時 99 # 適用フラグと登録日時を入れ替える 100 # 適用フラグと登録日時を入れ替える為に適用フラグと登録日時を削除 101 delf NF-1 NF | 102 # 1:部門コード 2:部門名称 3:担当者 4:適用開始日 5 103 # :適用終了日 104 # 新しい適用フラグ、登録日時をつける 105 joinx - ${tmp}-lv1_del_flg | 106 # 後ほどデータをマージする為部門コードでソート 107 msort key=1 > ${tmp}-del_bumon 108 # 1:部門コード 2:部門名称 3:担当者 4:適用開始日 109 # 5:適用終了日 6:適用フラグ(1:適用中 2:適用外) 7:登録日時 110 ERROR_CHECK 111 112 # LV1ディレクトリへコピー 113 cp -p ${tmp}-del_bumon ${lv1d}/BUMON_DELETE_${todayhms} 114 ERROR_CHECK 115 else 116 # POSTされたデータが存在しない場合の処理 117 echo "_ _ _ _ _ _ _" > ${tmp}-del_bumon 118 ERROR_CHECK 119 fi 120 |