如何在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

我想打电话给我$nowdate$pastdatesed命令中的变量。

匆忙

您以过多的引号放入声明中。它应该像这样正常工作:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章