在变量中以特定格式保存日期和时间linux debian sh脚本

时间:2017-12-28 17:12:05

标签: linux sh

我正在尝试在2个变量中保存2个日期,但它们具有特定格式(因为文件是这样的名称)。

他们被命名为以下

2014-10-27_08.01.01
2014-10-27_18.00.01

所以我把它放在我的剧本中

startdate=$(date -d -u +"2014-10-27_08.01.01")

enddate=$(date -d -u +"2014-10-27_18.00.01")

但每当我运行sh脚本时,我都会收到无效的日期错误。 我知道它可能无法读取但我无法弄清楚如何解决它。

1 个答案:

答案 0 :(得分:0)

<ul class="test"> <img title="test" alt="test" src="http://test.jpg" width="50" height="50"> <img title="test" alt="test" src="test" width="50" height="50"> </ul> 无法理解字符串中的下划线date和点_。您需要将其转换为有效的东西,例如

.

这将导致:

startdate=$(echo "2014-10-27_08.01.01"|sed -e 's/_/ /g' -e 's/\./:/g')
enddate=$(echo "2014-10-27_18.00.01"|sed -e 's/_/ /g' -e 's/\./:/g')

这是一个脚本,它使用函数重新格式化文件名中的字符串

~]# date -u -d "$startdate"
 Mon Oct 27 08:01:01 UTC 2014

结果:

 #!/bin/bash                                                                                                                                                                 

 inputDateFmt()
 {
    sed -e 's/_/ /g' -e 's/\./:/g' <<< "$1"
 }
 startdate=$(date -u -d "$(inputDateFmt "2014-10-27_08.01.01")")
 enddate=$(date -u -d "$(inputDateFmt "2014-10-27_18.00.01")")
 echo $startdate
 echo $enddate