如何使用和不使用正则表达式同时使用`grep`?

use*_*087 1 bash grep

我有一个bash脚本,我在使用grep来查找文件中的文本(存储在变量中).

found=$(grep "^$line$" "$file")
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,我需要grep才能使用正则表达式.但是,line有时包含带有正则表达式关键字的文本,例如[导致失败的文本grep: Unmatched [.

是否有可能让grep不解释$line正则表达式的内容?

Sto*_*ica 6

您可以使用-F标志grep来将模式解释为固定字符串而不是正则表达式.

此外,如果您希望图案匹配整条线(如^$line$图案所暗示的那样),则可以与-x标志结合使用.

所以你帖子中的命令可以写成:

found=$(grep -Fx "$line" "$file")
Run Code Online (Sandbox Code Playgroud)