我在 bash 脚本中使用 grep 正则表达式搜索,它确实包含很多搜索词。
some commands \
| grep -E 'search1|search2|search3|search4|search5|search6|search7|search8|search9|search10'
是否可以打破这个命令以使其更具可读性?
所以它看起来像这样:
some commands \
| grep -E 'search1|search2|search3|search4|search5|\
search6|search7|search8|search9|search10'
答案1
参考选项-e
some commands \
| grep -E -e 'search1|search2|search3|search4|search5' \
-e 'search6|search7|search8|search9|search10' \
-e ...\
-e ...
答案2
如果模式分为行,则 grep 将每一行视为单独且独立的模式。因此一种解决方案是:
command | grep -E 'search1|search2|search3|search4|search5
search6|search7|search8|search9|search10'
|
第一行末尾没有,否则它会被解释为或emptyspace,并且grep认为emptyspace匹配所有内容。另外,请勿在续行的开头放置空格,否则该空格将包含在模式中。