如何使用’grep’和*和_等字符?

我需要在一个或多个文件中找到一些文本。

这是我用的:

grep -irI "hello" ~/ 

但是,如果我想找到一个包含*_等字符的字符串,那么这些字符似乎被忽略了。

假设我想在所有文件中搜索字符串a**__

我怎样才能做到这一点? 非常感谢 – 我只是想不出来!

有一个-F选项:

 -F, --fixed-strings Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched. (-F is specified by POSIX.) 

这将禁用正则表达式搜索和解释*或等字符. 。 例:

 $ cat test a**__ $ grep -F 'a**__' test a**__ 

您应该在*前面使用转义字符( \ ),否则,您要搜索的字符串将成为正则表达式。

例如,如果要搜索**__ ,可以使用:

  grep -irI "\*\*__" ~/ 

更多关于: 在正则表达式中,哪些字符需要转义? 。