著者:岡田健
ユニケージでは、小さな道具の「コマンド」をシェルスクリプトで組み合わせて、さまざまな業務システムを構築しています。本連載では、毎回あるテーマに従ってユニケージによるシェルスクリプトの記述例を分かりやすく紹介します。第7回は、書き方のルールとなるお作法と分かりやすいコードの書き方について解説します。
シェルスクリプトマガジン Vol.60は以下のリンク先でご購入できます。![]()
![]()
cat SALES |
# 1:店舗 2:商品No 3:日付 4:売数
# 5:売上 6:割引
join1 key=2 PRICE | # 原価 / 売価を連結
# 1:店舗 2:商品No 3:原価 4:売価
# 5:日付 6:売数 7:売上 8:割引
join1 key=2 CATEGORY | # 部門を連結
# 1:店舗 2:商品No 3:部門 4:原価
# 5:売価 6:日付 7:売数 8:売上
# 9:割引
lcalc '$3,$7,$8,$8-$7*$4' | # 売数 / 売上 / 荒利計算
# 1:部門 2:売数 3:売上 4:粗利
msort key=1 | # 部門でソート
sm2 1 1 2 4 | # 売数 / 売上 / 荒利集計
sm5 1 1 2 4 | # 合計行の付加
divsen 2 3 4 | # 千で除算
divsen 3 4 | # 千で再除算
lcalc '$1,$2,$3,$4,100*$4/$3' | # 荒利率を求める
# 1:部門 2:売数 3:売上 4:粗利
# 5:粗利率
marume 5.1 | # 四捨五入
join2 key=1 CATEGORY_NAME | # カテゴリ名の連結
# 1:部門 2:部門名 3:売数 4:売上
# 5:粗利 6:粗利率
comma 3 4 5 | # カンマ編集
keta | # 桁そろえ
keisen +e | # 罫線を引く
cat header - # 出力
cat ZAIKO |
# 1:商品CD 2:規格CD 3:拠点CD 4:サイズCD
# 5:産地CD 6:ブランドCD 7:仕入先CD 8:発注先CD
# 9:在庫発生日 10:製造日 11:販売日 12:数量
(略)
cat ZAIKO |
# 1:商品CD 2:規格CD 3:拠点CD 4:サイズCD
# 5:産地CD 6:ブランドCD 7:仕入先CD 8:発注先CD
# 9:在庫発生日 10:製造日 11:販売日 12:数量
cjoin2 key=1 SHOHIN - |
# 1:商品CD 2:商品名 3:規格CD 4:拠点CD
# 5:サイズCD 6:産地CD 7:ブランドCD 8:仕入先CD
# 9:発注先CD 10:在庫発生日 11:製造日 12:販売日
# 13:数量
cjoin2 key=3 KIKAKU - |
# 1:商品CD 2:商品名 3:規格CD 4:規格名
# 5:拠点CD 6:サイズCD 7:産地CD 8:ブランドCD
# 9:仕入先CD 10:発注先CD 11:在庫発生日 12:製造日
# 13:販売日 14:数量
(略)
cat ZAIKO |
# 1:商品CD 2:規格CD 3:拠点CD 4:サイズCD
# 5:産地CD 6:ブランドCD 7:仕入先CD 8:発注先CD
# 9:在庫発生日 10:製造日 11:販売日 12:数量
cjoin2 key=1 SHOHIN - |
# 1:商品CD 2:商品名 3:規格CD 4:拠点CD
# 5:サイズCD 6:産地CD 7:ブランドCD 8:仕入先CD
# 9:発注先CD 10:在庫発生日 11:製造日 12:販売日
# 13:数量
cjoin2 key=3 KIKAKU - |
# 1:商品CD 2:商品名 3:規格CD 4:規格名
# 5:拠点CD 6:サイズCD 7:産地CD 8:ブランドCD
# 9:仕入先CD 10:発注先CD 11:在庫発生日 12:製造日
# 13:販売日 14:数量
(略)
cat ZAIKO |
# 1:商品CD 2:規格CD 3:拠点CD 4:サイズCD
# 5:産地CD 6:ブランドCD 7:仕入先CD 8:発注先CD
# 9:在庫発生日 10:製造日 11:販売日 12:数量
self 0 1 |
cjoin2 key=NF SHOHIN - |
delf NF-1 |
# 1:商品CD 2:規格CD 3:拠点CD 4:サイズCD
# 5:産地CD 6:ブランドCD 7:仕入先CD 8:発注先CD
# 9:在庫発生日 10:製造日 11:販売日 12:数量
# 13:商品名
self 0 3 |
cjoin2 key=NF KIKAKU - |
delf NF-1 |
# 1:商品CD 2:規格CD 3:拠点CD 4:サイズCD
# 5:産地CD 6:ブランドCD 7:仕入先CD 8:発注先CD
# 9:在庫発生日 10:製造日 11:販売日 12:数量
# 13:商品名 14:規格名
(略)