我在位置/Users/skull/Desktop
上有几个randoms日期文件夹
我想选择/找到今天日期的文件夹,如果没有,那么选择最接近今天的日期。不应该采取高日期文件夹
例如:今天日期2016-09-08
因为我们没有2016-09-08
文件夹,所以它应该花费较少的最近日期2016-09-06
或2016-09-06
不是那里{{1} }}
文件夹名称:
2016-08-30
我到目前为止的代码:
2016-07-015
2016-07-27
2016-08-30
2016-09-05
2016-09-06
2016-09-10
2016-09-15
2016-09-20
答案 0 :(得分:2)
以相反的顺序输出名称。然后使用awk
脚本打印第一个小于或等于当前日期的脚本。
DATA_FOLDER=$(ls -r "$location" | awk -v day=$DAY '$0 <= day {print; exit}')
答案 1 :(得分:1)
答案 2 :(得分:0)
感谢@Barmar @James Brown的帮助。下面是我qus的最终工作脚本:)
location=/Users/Skull/Desktop
DAY=$(date +"%Y-%m-%d")
#today date = 2016-09-09
DATA_FOLDER=$(ls -r "$location" | awk -v day=$DAY '$0 <= day {print; exit}')
echo "$DATA_FOLDER"
#Result = 2016-09-06
答案 3 :(得分:-1)
我会这样做:
DATA_FOLDER="$(ls "$location" | grep -P '^\d{4}-d{2}-d{2}$' | sed "/^$(date +%F)\$/q" | tail -n1)"
我使用ls查找所有文件,只过滤名称为日期的文件,将这些文件保存到与今天相对应的日期,最后丢弃除最后一个之外的所有文件,必须是今天的日期或最近的日期。