请指定更换最近日期为&时间的变量。在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