美文网首页
shell之正则表达式

shell之正则表达式

作者: 小小全_ | 来源:发表于2019-03-06 16:45 被阅读0次

    1.正则表达式

    正则表达式:描述某些字符串匹配规则的工具

    2.常见的支持正则表达式的UNIX工具:

    grep命令族:用于匹配文本行
    sed流编辑器:用于改变输入流
    awk:用于处理字符串的语言
    more或者less等:文件查看程序
    ed,vi或者vim等:文本编辑器

    实践正则表达式:

    #! /bin/bash
    str=`cat version.txt|grep rev`
    echo"$str"
    
    

    (cat命令用来显示文本内容,竖线是管道,表示将cat命苦的输出结果作为后面的那个命令的输入,grep命令用来查找文本,rev指要匹配的字符串。上面执行结果表示version.txt文件中的某一行含义rev这个字符串,实际上,grep命令后面的参数可以换成任意的正则表达式)

    3.正则表达式原理

    正则表达式是对文本进行过滤的工具,之所以有过滤文本的功能,因为它定义了一系列的元字符,通过元字符配合其他字符来表达出一种规则。只有符合该规则的文本才能保留下来。
    元字符:描述字符的字符。
    元字符作用:对表达式的内容,转换以及各种操作信息进行描述。

    4.正则表达式用法

    1)行首定位符 “^”

    用来匹配行首的字符。表示行首的字符是^后面的那个字符。
    行首定位符位于所作用的字符之前

    例如:列出/etc目录中的以字母po开头的文件名

    str=`ls /etc |grep "^po"`
    echo"$str"
    

    (^po理解为第一个字符为p,紧跟着一个字母o的文本行。不要理解为字符串po开头的文本行。)

    2)行尾定位符”$”

    作用:定位文本行的末尾。
    行尾定位符位于所作用的字符之后。

    列出/etc目录中以conf结尾的文件名

    str=`ls /etc |grep "conf$"`
    
    echo"$str"
    

    结果:anthy-conf
    asound.conf

    注意:

    精确匹配一个文本行:^cat完全匹配cat的文本行 ^:匹配所有[空行]
    单独的^和$没有任何意义,因为任何一个文本行都有开头和结尾。

    [参考链接:]
    https://blog.csdn.net/qq504196282/article/details/52995198
    https://www.cnblogs.com/OldJack/p/6607155.html

    相关文章

      网友评论

          本文标题:shell之正则表达式

          本文链接:https://www.haomeiwen.com/subject/ixlxpqtx.html