在bash变量中存储多个grep参数

时间:2017-12-07 15:49:08

标签: bash grep escaping

我想在bash变量中存储多个grep参数,因此我可以在文件顶部的配置部分中定义参数,并在多个位置使用它。

如何定义变量并编写grep命令?

详细信息

我的第一次尝试

# CONFIG: grep parameters to further filter ...                                                                  
GREP_PARAM="-E .*"

# ...

grep "^Stop " $1 | grep $GREP_PARAM | sed "..." >>$TFILE

结果

  

grep:..:是一个目录

使用.\*.\\*会导致grep与任何内容都不匹配,而不是所有内容。

使用grep "$GREP_PARAM"仅在GREP_PARAM包含单个参数时才有效,但不包含其他参数;例如如果它包含-v .*SAT.*-v .\*SAT.\*-v .\\*SAT.\\*,我会

  

grep:无效选项 -

1 个答案:

答案 0 :(得分:4)

这正是引入数组的原因。

grep_options=(-E '.*')

grep "^Stop " "$1" | grep "${grep_options[@]}" | sed "..." >> "$TFILE"