我想获取最近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
我想打电话给我$nowdate
,$pastdate
sed命令中的变量。
您以过多的引号放入声明中。它应该像这样正常工作:
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
(空格是为了提高可读性;它们不是强制性的。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句