如何使用’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 "\*\*__" ~/
更多关于: 在正则表达式中,哪些字符需要转义? 。