動作環境
Xeon E5-2620 v4 (8コア) x 2
32GB RAM
CentOS 6.8 (64bit)
openmpi-1.8.x86_64 とその-devel
mpich.x86_64 3.1-5.el6とその-devel
gcc version 4.4.7 (とgfortran)
NCAR Command Language Version 6.3.0
WRF v3.9を使用。
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
Python 3.6.0 on virtualenv
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
date (GNU coreutils) 8.4
処理概要
- 27日範囲の日付区間を表示する
- 例: 2017/11/04から2017/12/01
- 上記を開始日が13日おきに表示する
- 例: 2017/11/04から...
- 例: 2017/11/17から...
- ...
参考
昨日〜9日前までの日付を空白区切りで返すサンプル
の @nakataSyunsuke さんと@tukiyo3 さんのコメントを参考にしました。
(--max-args
と--replace=
の練習もかねて)
code v0.1
show_range_180117_exec
#!/usr/bin/env bash
set -eu # for safety
STARTS=$(seq 0 13 50 | xargs --max-args=1 | xargs --replace=@ -- date -d "2017/11/4 @days" +"%Y/%m/%d")
ENDS=$(echo $STARTS | xargs --max-args=1 | xargs --replace=@ -- date -d "@ 27days" +"%Y/%m/%d")
echo "--START--"
echo $STARTS | xargs --max-args=1
echo "--END--"
echo $ENDS | xargs --max-args=1
run
$ bash show_range_180117_exec
--START--
2017/11/04
2017/11/17
2017/11/30
2017/12/13
--END--
2017/12/01
2017/12/14
2017/12/27
2018/01/09
備考
- もっと短い書き方は未勉強
- STARTとENDを横に並べるエレガントな書き方は知らない
code v0.2
show_range_180117_exec
#!/usr/bin/env bash
set -eu # for safety
STARTS=$(seq 0 13 50 | xargs --max-args=1 | xargs --replace=@ -- date -d "2017/11/4 @days" +"%Y/%m/%d")
ENDS=$(echo $STARTS | xargs --max-args=1 | xargs --replace=@ -- date -d "@ 27days" +"%Y/%m/%d")
#echo "--START--"
#echo $STARTS | xargs --max-args=1
#echo "--END--"
#echo $ENDS | xargs --max-args=1
echo $STARTS ": START"
echo $ENDS ": END"
run
$ bash show_range_180117_exec
2017/11/04 2017/11/17 2017/11/30 2017/12/13 : START
2017/12/01 2017/12/14 2017/12/27 2018/01/09 : END
横にSTART,ENDを並べるのをやめて、縦にしました。