AIX 服务器上 BASH 中昨天的日期变量
Yesterday's date variable in BASH on AIX Server
我想将昨天的日期存储在 BASH 变量中,以便在文件名通配符搜索中使用该变量搜索昨天的文件。我正在为美国纽约市 (EST) 时区使用以下格式,想知道是否可以保证从系统日期中获取昨天的日期;否则我可以进一步更改变量。
yesterday=$(TZ=GMT+28 date +%Y%m%d)
...
for file in $HOME_DIR/*$yesterday*.txt;
...
HOME_DIR 中的文本文件名如下:
"ABC_20171011064612.txt"
更新 1:尝试消除与夏令时相关的问题:
yesterday=$(echo -e "$(TZ=GMT+28 date +%Y%m%d)\n$(TZ=GMT+18 date +%Y%m%d)"|grep -v $(date +%Y%m%d)|sort|tail -1)
1) 将今天日期前24小时和14小时(任意选择小于24小时)的两个日期转换为字符串
2) 过滤不是今天的日期
3) 将 2) 中的字符串按升序排序
4) 将 yesterday
变量分配给列表的最后一个 tail -1
条目
由于夏令时的原因,它可能并不总是正确的,尽管这不会是一个大问题。
你可以说:
yesterday=$(date -d yesterday +%Y%m%d)
您尝试了
yesterday=$(echo -e "$(TZ=GMT+28 date +%Y%m%d)\n$(TZ=GMT+18 date +%Y%m%d)|
grep -v $(date +%Y%m%d)|sort|tail -1)
我认为它有效。
我想将昨天的日期存储在 BASH 变量中,以便在文件名通配符搜索中使用该变量搜索昨天的文件。我正在为美国纽约市 (EST) 时区使用以下格式,想知道是否可以保证从系统日期中获取昨天的日期;否则我可以进一步更改变量。
yesterday=$(TZ=GMT+28 date +%Y%m%d)
...
for file in $HOME_DIR/*$yesterday*.txt;
...
HOME_DIR 中的文本文件名如下: "ABC_20171011064612.txt"
更新 1:尝试消除与夏令时相关的问题:
yesterday=$(echo -e "$(TZ=GMT+28 date +%Y%m%d)\n$(TZ=GMT+18 date +%Y%m%d)"|grep -v $(date +%Y%m%d)|sort|tail -1)
1) 将今天日期前24小时和14小时(任意选择小于24小时)的两个日期转换为字符串
2) 过滤不是今天的日期
3) 将 2) 中的字符串按升序排序
4) 将 yesterday
变量分配给列表的最后一个 tail -1
条目
由于夏令时的原因,它可能并不总是正确的,尽管这不会是一个大问题。 你可以说:
yesterday=$(date -d yesterday +%Y%m%d)
您尝试了
yesterday=$(echo -e "$(TZ=GMT+28 date +%Y%m%d)\n$(TZ=GMT+18 date +%Y%m%d)|
grep -v $(date +%Y%m%d)|sort|tail -1)
我认为它有效。