Shell-Script
如何在 sed 命令中呼叫變數
我想計算過去 1 小時內的記錄數
我的程式碼在下面
nowdate=$(date +'%H:%M:') pastdate=$(date +'%H:%M:' -d "1 hour ago") echo $nowdate echo $pastdate sed -rne '/"'"$pastdate"'"/,/"'"$nowdate"'"/p' /data/recvdmsg.log | wc -l
我得到的輸出是,
12:47: 11:47: 0
此外,這適用於像這樣的預定義值
sed -rne '/00:00:/,/00:59:/p' /data/recvdmsg.log | wc -l
我想 在 sed 命令中呼叫 my
$nowdate
,變數。$pastdate
您在聲明中引用了太多引號。它應該像這樣工作得很好:
sed -rne "/$pastdate/,/$nowdate/p" /data/recvdmsg.log | wc -l
或者如果您仍然想使用單引號,可以這樣:
sed -rne '/'$pastdate'/,/'$nowdate'/p' /data/recvdmsg.log | wc -l
請記住,如果
/
變數中有字元,它將破壞sed
表達式。如果您想進一步過濾這些記錄,您可以在 Sed 中執行此操作,而不是在末尾添加 grep:
sed -rne "/$pastdate/,/$nowdate/ { /pattern-to-grep-for/p; }" /data/recvdmsg.log
(空格是為了便於閱讀;它們不是強制性的。)