xiaoyu28 发表于 2018-8-27 13:02:11

shell脚本编程之通配符

  *    匹配任意长度的任意字符
  ?    匹配任意单个字符
  匹配所有数字
  [ ]   匹配指定范围内的任意单个字符
  [^]   匹配指定范围外的任意单个字符
  匹配列表中的任何的一个字符
  [^wxc] 匹配列表中的所有字符以外的字符
  预定义的字符类:#man 7 glob
  [[:digit:]]:任意数字,相当于0-9
  [[:lower:]]:任意小写字母
  [[:upper:]]: 任意大写字母
  [[:alpha:]]: 任意大小写字母(包括大小写)
  [[:alnum:]]:任意数字或字母
  [[:space:]]:空格和Tab
  [[:punct:]]:标点符号
  匹配指定范围外的任意单个字符
  [^[:upper]]
  [^0-9]
  [^[:alnum]]
  练习:
  1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
  ls /var/l**[[:lower]]
  2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
  ls /etc/*[^0-9]
  3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
  ls /etc/[^[:alpha:]][[:alpha:]]*
  4、显示/etc目录下所有以m开头以非数字结尾的文件或目录
  ls /etc/m*[^0-9]
  5、显示/etc目录下,所有以.d结尾的文件或目录
  ls /etc/*.d
  6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
  ls /etc/*.conf

页: [1]
查看完整版本: shell脚本编程之通配符