過去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コマンドで私の変数を呼び出したいです$nowdate
。$pastdate
ベストアンサー1
声明にあまりにも多くの内容を引用しました。次のようにうまく機能します。
sed -rne "/$pastdate/,/$nowdate/p" /data/recvdmsg.log | wc -l
または、まだ一重引用符を使用したい場合は、次のようにします。
sed -rne '/'$pastdate'/,/'$nowdate'/p' /data/recvdmsg.log | wc -l
/
変数に文字があると式がsed
中断されることを覚えておいてください。
これらのレコードをさらにフィルタリングするには、最後にgrepを追加するのではなく、Sedでこれを実行できます。
sed -rne "/$pastdate/,/$nowdate/ { /pattern-to-grep-for/p; }" /data/recvdmsg.log
(スペースは読みやすくするためのものでは必須ではありません。)