如何打破 grep 正则表达式搜索模式

如何打破 grep 正则表达式搜索模式

我在 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匹配所有内容。另外,请勿在续行的开头放置空格,否则该空格将包含在模式中。

相关内容