著者:伊藤 和正
ユニケージでは、小さな道具の「コマンド」をシェルスクリプトで組み合わせて、さまざまな業務システムを構築しています。本連載では、毎回あるテーマに従ってユニケージによるシェルスクリプトの記述例を分かりやすく紹介します。第2回は、データを分割・保存した複数のテキストファイルの抽出や読み出しです。
記事本文掲載のシェルスクリプトマガジンvol.55は以下のリンク先でご購入できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
ERROR_CHECK(){ [ $(plus ${PIPESTATUS[@]}) -eq 0 ] && return echo "ERROR" exit 1 } echo * | tarr | ugrep -v '*' | xargs cat | (略) cat > $tmp-result ERROR_CHECK |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
(略) echo DATA/*/*/* | tarr | ugrep -v '*' | # 1:DATA/日付/店舗/商品 tr '/' ' ' | # 1:DATA 2:日付 3:店舗 4:商品 cjoin0 key=2 $tmp-days - | cjoin0 key=3 $tmp-tenpo - | cjoin0 key=4 $tmp-shohin - | tr ' ' '/' | # 1:DATA/日付/店舗/商品 xargs cat | (略) cat > $tmp-result ERROR_CHECK |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
(略) find DATA -type f | # 1:DATA/日付/店舗/商品 tr '/' ' ' | # 1:DATA 2:日付 3:店舗 4:商品 cjoin0 key=2 $tmp-days - | cjoin0 key=3 $tmp-tenpo - | cjoin0 key=4 $tmp-shohin - | tr ' ' '/' | # 1:DATA/日付/店舗/商品 xargs cat | (略) cat > $tmp-result ERROR_CHECK |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
loopx $tmp-day $tmp-tenpo $tmp-shohin | # 1:日付 2:店舗 3:商品 tr ' ' '/' | # 1:日付/店舗/商品 strcat \"DATA/\"+1 | # 1:DATA/日付/店舗/商品 xargs ls 2>/dev/null > $tmp-filepass cat $tmp-filepass | xargs cat | (略) cat > $tmp-result ERROR_CHECK |