Filenames

如何將 20170202 之類的字元串解析為 bash 腳本中的日期?

  • February 3, 2017

假設我有幾個由腳本生成並遵循模式的文件:

yyyymmdd_fileName.fileExtension

而 yyyymmdd(即 20170202)是一個日期,其中年份是 2017,月份是 2 月,日期是 2 日)。

我知道我可以獲取完整的文件名並提取日期部分,但是如何將其設為日期元素,以便與提供的目前日期進行比較date

使用-darg 的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

引用自:https://unix.stackexchange.com/questions/341966