根据传入参数的日期查找文件

根据传入参数的日期查找文件

我需要根据参数中提供的日期查找第二天的文件。

例如,我有这些文件:

XYZ.ABC.M.20200615180200.batch
XYZ.ABC.M.20200616180200.batch
XYZ.ABC.M.20200617180200.batch

如果参数中提供的日期是20200614,那么它应该返回文件XYZ.ABC.M.20200615180200.batch;参数值提供的日期格式为2020-06-14

我尝试过类似的方法date +%Y%m%d -d "(2020-06-24)+1 days",但它采用的是今天的日期而不是20200615.XYZ.ABC.M.20200615180200.batch如果输入日期是,有人可以分享查找文件的完整命令2020-06-14吗?

答案1

你们非常接近。删除括号,它应该可以工作:

$ date +%Y%m%d -d "(2020-06-24)+1 days"
20200702

$ date +%Y%m%d -d "2020-06-24 +1 days"
20200625

或者,更具体地说

dt=20200614; # or 2020-06-14, either way works

file=$(date +"XYZ.ABC.M.%Y%m%d180200.batch" -d "$dt + 1 days");
echo $file;

XYZ.ABC.M.20200615180200.batch

相关内容