請指定更換最近日期爲&時間的變量。在bash shell中查找並替換
這是我的要求。
FN='basename$0'
TS=`date '+%m/%d/%Y %T'`
QD='08/27/2014 16:25:45'
然後我有一個查詢運行。運行後,我需要採取$TS
(當前系統日期&時間)並將其作爲值分配給$QD
變量。這是一個循環過程,每次腳本運行時都會更新。
我試過使用sed但沒有成功。
請幫忙。
請指定更換最近日期爲&時間的變量。在bash shell中查找並替換
這是我的要求。
FN='basename$0'
TS=`date '+%m/%d/%Y %T'`
QD='08/27/2014 16:25:45'
然後我有一個查詢運行。運行後,我需要採取$TS
(當前系統日期&時間)並將其作爲值分配給$QD
變量。這是一個循環過程,每次腳本運行時都會更新。
我試過使用sed但沒有成功。
請幫忙。
雖然你還沒有提到你想要完成的總體目標,但我有一種感覺,比起使用sed
來更新現有的腳本文件更強大。
FN='basename$0'
TS=date '+%m/%d/%Y %T'
# Load the latest QD (from the last run)
[ -e ~/.QD.saved ] && QD="`cat ~/.QD.saved`"
QD='08/27/2014 16:25:45'
......後來在該文件中...
#Save the new QD variable
echo '$(date +$FORMAT)'" > ~/.QD.saved
雖然我不知道,如果sed的就是你要找的工具,我相信你的命令將不得不像這樣的:
sed -i -r 's/^QD=.*/QD="$TS"/g' "$FN"
我假設你正在使用的GNU sed的,它與-i選項告訴做一個就地替代,而不是複製輸入行到模式空間。
那麼,希望它有幫助。
以編程方式修改您的腳本以具有不同的時間戳常量是絕對和重點錯誤的方式來處理此問題。
相反,當你想標記該查詢已經完成,只需觸摸一個文件:
touch lastQueryCompletion
...當你想知道什麼時候該查詢的最後完成,檢查文件的時間戳:
# with GNU date
QD=$(date -r lastQueryCompletion '+%m/%d/%Y %T')
# or, with Mac OS X stat
QD=$(stat -t '%Y/%m/%d %H:%M:%S' -f '%Sm' lastQueryCompletion)
+1教我日期-r。這會派上用場。 – jpaugh 2014-08-30 20:34:53
你可以發佈你試過的sed命令嗎? – 2014-08-27 23:59:56
嗯......'QD =「$ TS」'?還是你的意思是別的? – jpaugh 2014-08-28 00:00:55
雖然這是在shell腳本中... – RKP 2014-08-28 00:03:26