从日志文件中提取行时 sed 不起作用



当我做echo /$date $hh:$mq[$mr-9]/,/$date 23:59/p时,我得到这个作为回报/2017-12-31 19:1[4-9]/,/2017-12-31 23:59/p但是当我这样做时sed -n '/$date $hh:$mq[$mr-9]/,/$date 23:59/p' $error_log_file_name我得到这个

gesed:-e 表达式 #1,字符 22:无效范围结束

有什么建议我哪里出错了吗? $error_log_file_name是正确的。

因为没有引号$date变量被扩展,而在单引号内没有扩展,比较

echo /$date $hh:$mq[$mr-9]/,/$date 23:59/p
echo "/$date $hh:$mq[$mr-9]/,/$date 23:59/p"
echo '/$date $hh:$mq[$mr-9]/,/$date 23:59/p'

同样,如果没有引号,参数会在空格或制表符上拆分,并且可能会发生文件通配。

最新更新