Filenames
如何將 20170202 之類的字元串解析為 bash 腳本中的日期?
假設我有幾個由腳本生成並遵循模式的文件:
yyyymmdd_fileName.fileExtension
而 yyyymmdd(即 20170202)是一個日期,其中年份是 2017,月份是 2 月,日期是 2 日)。
我知道我可以獲取完整的文件名並提取日期部分,但是如何將其設為日期元素,以便與提供的目前日期進行比較
date
?
使用
-d
arg 的date
。
man date
-d, --date=STRING display time described by STRING, not 'now'
$ date -d 20170202 Thu Feb 2 00:00:00 CET 2017
為了便於比較,您可以使用 unixdate 格式
$ date -d 20170203 +%s 1486076400
另一種選擇是使用
touch
. 這應該適用於大多數係統,但您需要將時間指定為hhmm.ss
. 我通常使用1200.00
.touch -t 201702021200.00