Bash - 年月日ループ!
Updated:
シェルスクリプト(Bash)で年月日でループ処理を行ってみました。(日付の妥当性をチェックしなくてもよい方法)
0. 前提条件
- Debian GNU/Linux 10.10 (64bit) での作業を想定。
- GNU bash 5.0.3 での作業を想定。
1. Bash スクリプトの作成
以下は、作成例。(Example-1 or Example-2 どちらか)
date
コマンドで「1日後」を指定しながらループしているので、日付の妥当性をチェックしなくてもよい。
File: date_loop.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
DATE_S="20201226"
DATE_E="20210105"
# Example-1
for (( dt=$DATE_S ; $dt < $DATE_E ; dt=`date -d "$dt 1 day" '+%Y%m%d'` )) ; do
echo $dt
done
echo "---"
# Example-2
dt=$DATE_S
while [[ $dt < $DATE_E ]] ; do
echo $dt
dt=`date -d "$dt 1 day" '+%Y%m%d'`
done
2. Bash スクリプトの実行
$ ./date_loop.sh
20201226
20201227
20201228
20201229
20201230
20201231
20210101
20210102
20210103
20210104
---
20201226
20201227
20201228
20201229
20201230
20201231
20210101
20210102
20210103
20210104
何かと応用が効くでしょう。
以上。
Comments