簡體   English   中英

將日期和時間以特定格式保存在變量中| linux debian sh腳本

[英]Save a date and time in a specific format in a variable | linux debian sh script

我試圖將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腳本時,我都會得到無效的日期錯誤。 我知道它可能無法閱讀,但我不知道如何解決它。

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

結果是:

~]# ./datefmt.bash
Mon Oct 27 08:01:01 UTC 2014
Mon Oct 27 18:00:01 UTC 2014

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM