如何在shell脚本中转​​义grep的括号

时间:2015-06-06 09:11:23

标签: grep ksh

我在脚本中有以下行,但它无法正常工作:

log_error_not_loaded=$(
    grep -e " ([^0]|[0-9]{2,}) Rows not loaded" ./my_file_name
)

但是,当我在脚本之外单独执行该行时,它可以工作(输出行):

grep -e " ([^0]|[0-9]{2,}) Rows not loaded" ./my_file_name

从我运行的其他测试中,我认为导致问题的是[]{}。典型的\ escape不起作用。

1 个答案:

答案 0 :(得分:0)

我只需要逃避管道,圆括号和花括号:

log_error_not_loaded=$(
    grep -e " \([^0]\|[0-9]\{2,\}\) Rows not loaded" ./my_file_name
)