从日志文件中提取行时sed不工作?

问题描述 投票:0回答:1

当我做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 expression#1,char 22:无效的范围结束

我出错的任何建议? $error_log_file_name是正确的。

bash shell date sed
1个回答
1
投票

因为没有引号,$ 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'

也没有引号,参数在空格或制表符上分开,并且可以发生文件通配。

© www.soinside.com 2019 - 2024. All rights reserved.