如何让grep将任何角色视为常规角色

Ján*_*ila 3 linux string bash grep sed

我在脚本中尝试grep一些字符串.我不知道我找到了什么字符串或者我正在尝试找到它的文件.我只需要从文件中获取grep 精确字符串.

所以,我的问题是,有时greping字符串包含方括号,并且我发现,grep认为它们是特殊字符.

string='some [text]'
grep "$string" file
Run Code Online (Sandbox Code Playgroud)

我可以用sed逃脱它们

string='some [text]'
grep "$(sed -e 's/\[/\\[/g' <<< "$string")" file
Run Code Online (Sandbox Code Playgroud)

无论输入是什么,我都需要grep来匹配精确的字符串.那么有更好的方法吗?某种方式告诉grep将字符串中的每个字符都视为常规字符?如果没有,是否有其他特殊字符,如[我需要担心?

P.P*_*.P. 5

您可以使用-F选项将其解释为固定字符串:

grep -F "$string" file
Run Code Online (Sandbox Code Playgroud)