Linux十六:正则表达式及文本处理工具

正则表达式

一、概述
  1. 定义

    正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。

  2. 使用范围

    在Linux中,grep、sed、awk等文本处理工具都支持通过正则表达式进行模式匹配

二、特殊字符
  1. 特殊字符列表
    特殊字符功能使用
    1^以指定字符串开头的行^a 以a开头的行
    2$以指定字符串结尾的行sh$ 以sh结尾的行
    3.匹配一个任意字符r…t 匹配r和t中间有两个字符的内容
    4*匹配上一个字符0次或多次ro*t 匹配r和t之间有任意个o,包括没有o
    5[ ]匹配某个范围内的一个字符[6,8]:匹配 6 或者 8
    [0-9]:匹配 0 到 9 的数字
    [a-z,0-9]:匹配a到z,0-9的任意字符
    6\转义字符,且必须用单引号引起‘\ ′ ' :以$结尾
  2. 组合使用
    组合特殊字符功能使用
    1^$匹配空行cat add.sh | grep -n ^$ 可以查看所有空行的行号
    2.*匹配任意字符串^a.*bash$ 匹配以a开头,bash结尾的所有行
    3[0-9]{9}重复匹配指定次数echo “13988997788” | grep -E ^1[345789] [0-9]{9}$
三、文本处理工具 - cut
  1. 作用

    在文件中负责剪切数据。cut命令从文件的每一行剪切字节、字符和字段,并将这些字节、字符和字段输出。

  2. 基本语法

    cut 选项参数 filename

    选项参数功能
    1-f列号,提取第几列
    2-d分隔符,按照指定分隔符分割列,默认是制表符
    3-c按字符进行切割 后加n调试取第几列
  3. 举例

    在这里插入图片描述

  4. 注意

    列是以分隔符来确定的,不是传统意义上的列

四、文本处理工具 - awk
  1. 作用

    强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理

  2. 基本语法

    awk 选项参数 ’/pattern1/{action1} /pattern2/{action2} …‘ filename

    pattern:表示awk在数据中查找的内容,就是匹配模式

    action:在找到匹配内容时所执行的一系列命令

    选项参数功能
    1-F指定输入文件分隔符
    2-v赋值一个用户定义变量
  3. action 扩展
    action的代码块功能举例
    1{print $7}
    要剪切第7列,只需要 $7就可以了
    awk -F “:” ‘/^root/ {print $1","$7}’
    剪切了1和7列
    2’BEGIN{print “前置字符串”}{ }END{print “后置字符串”}‘在结果前后增加不同的字符串
    3
  4. awk的内置变量
    内置变量说明
    1FILENAME文件名
    2NR已读的记录数(行号)
    3NF浏览记录的域的个数(切割后,列的个数)
    示例

    在这里插入图片描述

    awk -F ":" '{print "文件名" FILENAME"行号:" NR "列数" NF }' /etc/passwd
    
  5. 使用举例

    ① 查询ifconfig命令输出结果中的空行所在的行号

    ② 切割IP

    在这里插入图片描述

五、小结
  1. grep是对行的筛选;cut是对列的筛选
  2. awk融合了对行和列的筛选
  3. grep / cut / awk 都可以使用在通道符后
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e_nanxu

感恩每一份鼓励-相逢何必曾相识

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值