• Linux


    linux常用通配符有* ,?,[ ],[^],[:space:],[:punct:],[:lower:],[:upper:],[:digit:],[:alnum:]等等。

    在linux中,有通配符及正则表达式,那么什么是通配符和正则表达式,什么时候用?
     

    通配符

    它是由shell解析,并且一般用于匹配文件名,实际上就是shell解释器去解析的特殊符号,linux系统通配符有几下几种:
    *:匹配任意多个字符
    ?:匹配任意一个字符
    [...]:匹配中括号内出现的任意一个字符
    [!...]:不匹配中括号内出现的任意一个字符
     
    一般出现在要shell命令或脚本中,匹配特定的文件名
     
     

    正则表达式

    它是一个字符匹配标准,一些命令工具按此标准实现字符匹配,根据命令支持的匹配功能可分为基础正则表达式和扩展正则表达式,常用于支持正则表达式的工具,如sed,grep,awk...
    有如下一些常用的匹配元字符:
     
    字符匹配
    .:匹配任意单个字符
    *:匹配其前面一个字符出现任意次
    ?:匹配其前面的字符1次或0次
    +:匹配其前面一个字符出现至少一次(在扩展正则表达式中)
     
    位置匹配
    ^:锚定行首
    $:锚定行尾
    <或:锚定词首,其后面的任意字符必须作为单词首部出现
    >或:锚定词尾,其前面的任意字符必须作为单词尾部出现
    B:非单词的开头或结尾
    ^$:空白行
     
    分组() :
    (ab)* : 匹配ab这个分组出现任意次
    1:引用第一个左括号以及与之对应的右括号所包括的所有内容,同理还有2,3
     
    特殊子字符类:
    [:alnum:] :任何字母和数字
    [:alpha:] :任何字母
    [:cntrl:] :控制字符. 在ASCII表中对应八进制000 到 037, 和177 ('DEL').
    [:digit:] :任何数字
    [:graph:] :匹配打印字符,相当于'[:alnum:]' +'[:punct:]'.
    [:lower:] :小写字母
    [:print:] :可打印字符,相当于 '[:alnum:]', '[:punct:]', 和space.
    [:punct:] 标点符号,'! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ ] ^ _ ' { | } ~'
    [:space:] 空白字符,tab, newline, vertical tab, form feed, carriage return, and space.
    [:upper:] 大写字母
    [:xdigit:] 任何16进制的数字,相当于[0-9a-fA-F]
    所以:^[[:space:]]*$ :匹配没有任何内容的行
     
    需要注意:[]中的特殊字符如.已经失去了其特殊含义,和方括号中的普通字符[abc]一样。

    方法/步骤

     
    1. 1

      *  匹配任意长度的任意字符

      ?匹配任意单个字符

      比如我们创建abc,a1c,a1bc,a12c四个文件(touch abc a1c a1bc a12c)

      ls a*c  表示查看a开头c结尾的所有文件(abc,a1c,a1bc,a12c)

      ls a?c  表示查看a开头c结尾中间带有一个字符的文件(abc,a1c)

      Linux下通配符的使用介绍
    2. 2

      [ ]匹配制定范围内的单个字符[^]匹配制定范围外的单个字符

      ls a[0-9]c             列出a开头c结尾中间带有一个数字的文件

      ls a[0-9][a-z]c     列出a开头c结尾中间带有一个数字和一个字母的文件

      ls a[^0-9]c             列出a开头c结尾中间带有一个数字的文件

      其输出结果如下图

      Linux下通配符的使用介绍
    3. 3

      [:space:]匹配单个空白字符

      [:punct:]匹配单个标点符号字符

      [:lower:]匹配单个小写字母字符

      [:upper:]匹配单个大写字母字符

      [:digit:]匹配单个数字字符

      [:alnum:]匹配单个数字和字母字符

      以上通配符在使用时还需在加一个[ ]

      例如:

      list a[[:space:]]b  列出a空格b的文件

      list a[[:space:]][[:space:]]  列出a空格空格b的文件

      Linux下通配符的使用介绍
  • 相关阅读:
    C# 3.0新特性
    WinForm上显示gif动画
    Sql Server中Case函数的使用(上篇)转载
    Jquery的$命名冲突:
    Sql Server中case函数的使用(下篇) 转载
    hdu 2544 2066 1874 2680
    伤感!
    hdu 1999 不可摸数
    hdu 1878欧拉回路
    hdu 2767
  • 原文地址:https://www.cnblogs.com/firestar277/p/14663271.html
Copyright © 2020-2023  润新知