shell中RE(正则表达式)和通配符的区别

正则表达式

^   匹配行首

技术分享

$   匹配行尾

.   匹配任意字符

技术分享

*   匹配*之前的字符0次或者多次

技术分享

ls | grep “^h.n”

匹配的是以h开头的第二个字符为任意字符,第三个字符为n的所有文件

ls | grep "^h.n*"

匹配的是以h开头的第二个字符为任意字符,第三个字符为n的0次和2次

因为,hjkkk这个文件的第三个字符为k不为n,*匹配的时候将n匹配0次的时候也就是第三个字符不为n也将之匹配并输出,至于hrnkkk和hungss第三个字符都出现一次,所有grep顺利将其匹配输出


通配符

?代表匹配任意单个字符

技术分享

* 代表匹配任意字符的组合也也可以匹配单个字符

技术分享

特别注意的是*在正则表达式中个通配符中使用的不同

本文出自 “没那么简单” 博客,请务必保留此出处http://hungss5657.blog.51cto.com/8011603/1624927

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。