我们要在文件夹下递归搜索以下行
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
.