![如何打破 grep 正则表达式搜索模式](https://linux22.com/image/122898/%E5%A6%82%E4%BD%95%E6%89%93%E7%A0%B4%20grep%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%90%9C%E7%B4%A2%E6%A8%A1%E5%BC%8F.png)
我在 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匹配所有内容。另外,请勿在续行的开头放置空格,否则该空格将包含在模式中。