grep + 在文件/脚本中的文件夹下搜索递归复杂语法

grep + 在文件/脚本中的文件夹下搜索递归复杂语法

我们要在文件夹下递归搜索以下行

awk '{print}'|grep -i -e 'port is up' -e 'valid output'

所以我们这样做了:

grep -r "awk '{print}'|grep -i -e 'port is up' -e 'valid output'"  /var
grep -r "awk '{print}'|grep -i -e 'port is up' -e 'valid output'"  /etc
grep -r "awk '{print}'|grep -i -e 'port is up' -e 'valid output'"  /opt

但我不确定 grep 是否可以管理“'”和“{”字符,或者我的语法可能是错误的?

答案1

要搜索固定字符串(不是正则表达式),请使用-F带有 的选项grep。如果您还需要确保您的字符串与全部的行,使用-x

grep -Fx -r '...your string here...' directory

为了获得近似的命中(如果全行搜索没有返回任何内容),我会从port is up(没有-x)开始,或者可能

grep -F -r -e 'port is up' -e 'valid output' directory

当您像这里一样使用基本正则表达式时, nor 或 都不是特殊的正则表达式|模式{。在正则表达式中从来都不是特殊的。但是,由于您正在使用}'细绳(不是模式),您仍然应该使用-F.

相关内容