jgugugiug 发表于 2018-8-29 10:22:06

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顺利将其匹配输出
  通配符
  ?代表匹配任意单个字符

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

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

页: [1]
查看完整版本: shell中RE(正则表达式)和通配符的区别