我想在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:无效选项 -
答案 0 :(得分:4)
这正是引入数组的原因。
grep_options=(-E '.*')
grep "^Stop " "$1" | grep "${grep_options[@]}" | sed "..." >> "$TFILE"