我有名称带有日期后缀的日志文件列表:
mylog.2014-01-01.gz
mylog.2014-01-02.gz
........
mylog.2014-03-04.gz
我有一个开始和结束日期,例如 2014-02-01 -> 2014-02-04。在 linux 脚本上使用 bash 我想查找名称匹配日期范围的文件。所以我想获取文件:
mylog.2014-02-01
mylog.2014-02-02
mylog.2014-02-03
mylog.2014-02-04
我不能依赖
find /path -type f -newer $startFile -not -newer $endFile mylog*gz
因为mylog.2014-02-01可以在2014-02-01 23:59或者2014-02-02 00:01
修改最佳答案
也许:
START_DATE=$(date -d '2014-02-01 01' '+%s')
END_DATE=$(date -d '2014-02-04 01' '+%s')
IFS=.
for i in mylog.*.gz; do
fname=($i)
d=$(date -d "${fname[1]} 01" '+%s')
if (($d > $START_DATE && $d < $END_DATE)); then
echo "Found file: $i"
fi
done
感谢@kojiro 的 IFS 和 glob 想法。
关于bash - 查找日期范围后缀内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22513301/