grep * gcc *不匹配任何内容

拉杰什瓦尔

我正在使用以下代码

$ rpm -qa | grep -i gcc
libgcc-4.8.3-7.fc20.i686
gcc-c++-4.8.3-7.fc20.x86_64
gcc-4.8.3-7.fc20.x86_64
libgcc-4.8.3-7.fc20.x86_64

$ rpm -qa | grep -i *gcc*
$ 

我希望第二种方法能与第一种方法相同,但它不会打印任何内容。我使用grep命令正确吗?

克罗嫩皮

一种方法是使用egrepgrep -E类似这样的方法:

rpm -qa | egrep -i '.*gcc.*'

它将提供的搜索字符串用作正则表达式,其中句点(。)代表任何字符,星号(*)代表这些字符中的一个或多个。

我相信您尝试使用的rpm -qa | grep -i *gcc*是大多数Shell的功能,称为文件名范围。此技术不适用于grep。gcc第一个示例一样,它假定您希望字符串中包含所有内容,而无需显式指定它。

编辑:*gcc*之间的区别.*gcc.*是第一个实际上是egrep的语法错误,尽管它可能不会告诉您。星号(*)是一个修饰符,它告诉正则表达式解析器您对零个或多个前一个字符感兴趣。在第一个表达式中,没有前一个字符,因为单引号(')不计算在内。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章