• Linux命令集锦之·正则表达式


    • 时间:2018-11-15 记录:byzqy

    正则表达式与通配符:

    正则表达式,用来在文件中匹配符合条件的字符串,正则是包含匹配

    grep、awk、sed 等命令可以支持正则表达式。

    通配符,用来匹配符合条件的文件名,是完全匹配

    ls、find、cp 这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。

    通配符:

    *(星号),代表任意字符重复任意多次;

    ?(问号),代表任意字符重复一次;

    [](中括号),代表一个字符即中括号中写的字符;

    示例在anaconda-ks.cfg这个文件当中搜索size这个字符串

    $ grep "size" anaconda-ks.cfg

    注意:正则表达式中有一些符号和通配符一样,但是含义完全不同。

    基础正则表达式:

    示例:星号(*)前面一个字符匹配0次,或任意多次

    $ grep "a*" test_rule.txt

    # 匹配所有内容,包括空白行;

    $ grep "aa*" test_rule.txt

    # 匹配至少包含有一个a的行;

    $ prep "aaa*" test_rule.txt

    # 匹配最少包含两个连续a的字符串;

    $ grep "aaaaa*" test_rule.txt

    # 匹配最少包含4个连续a的字符串。

    示例:点号(.)匹配除了换行符外的任意一个字符

    $ grep "s..d" test_rule.txt

    # “s..d”会匹配在s和d这两个字母之间一定有两个字母的单词;

    $ grep "s.*d" test_rule.txt

    # 匹配在s和d字母之间有任意字符;

    $ grep ".*" test_rule.txt

    # 匹配所有内容。

    示例:尖号(^)匹配行首,美元符($)匹配行尾

    $ grep "^M" test_rule.txt

    # 匹配以大写“M”开头的行;

    $ grep “n$” test_rule.txt

    # 匹配以小写“n”结尾的行;

    $ grep -n "^$" test_rule.txt

    # 会匹配空白行。(-n是grep的参数,表示匹配结果中显示行号)

    示例:中括号([])匹配中括号中指定的任意一个字符,只匹配一个人字符

    $ grep "s[ao]id" test_rule.txt

    # 匹配s和i字母中间,要么是a,要么是o;

    $ grep "[0-9]" test_rule.txt

    # 匹配任意一个数字;

    $ grep "^[a-z]" test_rule.txt

    #匹配用小写字母开头的行。

    示例:中括号中加尖号([^])匹配除中括号指定的字符以外的任意一个字符

    $ grep "^[^a-z]" test_rule.txt

    # 匹配不用小写字母开头的行;

    $ grep "^[^a-zA-Z]" test_rule.txt

    # 匹配不用字母开头的行。

    示例:转义符()让特殊符号丧失它的特殊含义,回归到普通字符本身

    $ grep ".$" test_rule.txt

    # 匹配使用 “.”结尾的行。

    示例:{n}”表示其前面的字符恰好出现n次

    $ grep "a{3}" test_rule.txt

    # 匹配a字母连续出现三次的字符串;

    $ grep "[0-9]{3}" test_rule.txt

    # 匹配包含连续的三个数字的字符串。

    示例:{n,}”表示其前面的字符出现不小于n次

    $ grep "^[0-9]{3,}[a-z]" test_rule.txt

    # 匹配最少用连续三个数字开头的行。

    示例:{n,m}”表示匹配其前面的字符至少出现n次,最多出现m次。

    $ grep "sa{1,3}i" test_rule.txt

    # 匹配在字母s和字母i之间最少有一个a,最多有3个a。

    --the end--

  • 相关阅读:
    Oracle中创建视图
    SQL Server 2012 Express安装图解
    oracle学习笔记
    Oracle中视图的创建和处理方法
    DDL、DML和DCL的理解
    ROS学习--如何结合launch文件使用参数服务器
    stm32多块开发板can总线互联卡死问题
    ROS CAN总线设备接入(二)can总线数据提取和以ros topic形式发布
    ROS CAN总线设备接入(一)Linux动态库的显式调用
    ROS .so载入undefined reference to `dlopen'问题
  • 原文地址:https://www.cnblogs.com/jswl/p/9961955.html
Copyright © 2020-2023  润新知