[英]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.