• 技术文章 >运维 >linux运维

    正则表达式

    巴扎黑巴扎黑2017-07-21 10:03:23原创1179

    一、正则表达式

    1、匹配字符的类型

    2、后跟以下符号控制匹配的数量

    此类符号的左侧要有上面第一点的表达式

    【例】[a-z]*表示匹配0个或多个小写字母

    3、将匹配的字符控制在头尾

    二、Linux三大文本处理工具

    1、egrep 筛选工具

    grep的扩展版,可以使用正则表达式

    语法:

    egrep -选项 '正则表达式' 文件名

    选项:

    2、sed 流编辑器

    语法:

    语法1:sed -选项 '数字定位+命令' 文件名

    选项:

    定位:

    ①数字定位(输入行序号定位)

    【例】sed -n '1p' /etc/passwd

    ②正则表达式定位

    【例】sed -r 's/(.)(.)/\2\1/ file1 表示将匹配到的第一部分和第二部分替换

    *贪婪选项:填上g,代表把一行中所有匹配项替换

    命令:

    *s命令特别说明:

    使用{命令1:命令2:命令3}可增加使用多个命令

    s命令语法:sed -r '替换命令s/正则表达式/替换内容/贪婪选项g' 文件名

    3、awk 文本分析工具

    由命令、正则(需要用//包围起来)、比较和关系运算组合而成

    使用option中的-F参数定义间隔符号

    用$1,$2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域,NF变量表示当前记录的字段数

    语法

    awk -选项 参数 '逻辑判断{命令 变量1,变量2,变量3}' 文件名

    选项

    AWK变量

    【OFS例】

    # awk -F: 'OFS="=====" {print $1,$2}' /etc/passwd
    root=====x

    【ORS例】

    # awk -F: 'ORS="=====" {print $1,$2}' /etc/passwd
    root x=====bin x=====

    【例1】使用AWK变量
    # awk '{print NR,FNR,$1}' file1 file2
    1 1 aaaaa
    2 2 bbbbb
    3 3 ccccc
    4 1 dddddd
    5 2 eeeeee
    6 3 ffffff
    #

    【例2】引用shell变量的方法

    # a=root
    # awk -v var=$a -F: '$1 == var {print $0}' /etc/passwd
    或者 把整个命令拆开传递,让shell变量外露,
    # awk -F: '$1 == "'$a'" {print $0}' /etc/passwd
    # a=NF
    # awk -F: '{print $'$a'}' /etc/passwd

    逻辑运算(可直接引用域进行运算)

    转义序列

    有错误请指正,更多详细资料参考:

    以上就是正则表达式的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Linux 表达式 文本
    上一篇:CentOS7的网卡启动出问题的解决方案 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • linux档案是什么样的• linux autofs是什么• linux中的上下文是什么• linux什么命令可以过滤控制字符• linux o和a什么文件
    1/1

    PHP中文网