shell之grep 文本过滤命令、sed 行编辑器 、awk 报告生成器

本文详细介绍了Linux中三个强大的文本处理工具:grep用于文本过滤,sed用于行编辑,awk则用于生成报告。通过实例演示了它们的使用方法,包括grep的正则表达式匹配、sed的行操作(如显示、删除、添加、替换和写入)以及awk的报告生成机制。这些工具在日常的系统管理和脚本编写中有着广泛的应用。
摘要由CSDN通过智能技术生成

1.grep 文本过滤命令

##全面搜索研究正则表达式并显示出来

grep 命令 (Global search regular expression and print out the line)是一种强大的文本搜索工具,根据用户指定的‘模式’对目标文本进行匹配检查,打印匹配到的行。由正则表达式或者字符及基本文本字符所编写的过滤条件


1)grep 的格式:

grep + 匹配条件 + 处理文件

     

例如:  grep  root  passwd                          #过滤passwd中含有root的行并显示出来

           grep  ^root passswd                        #过滤passwd中以root开头行并显示出来

           grep  root$ passwd                          #过滤passwd中以root结尾行并显示出来

           grep -i root passwd                          #过滤passwd中含有root的行且忽略大小写并显示出来

           grep -E "root|ROOT" passwd            #过滤passwd中含有root或者ROOT的行并显示出来


实验:(在虚拟机中)

 cp /etc/passwd /mnt

 ls /mnt

 vim /mnt/passwd       #先删除一些内容,再添加一些新的内容,方便后面的实验观察现象

 cat /mnt/passwd


 cd /mnt

 grep root passwd      #找出passwd中含有root的行


 grep  ^root passwd    #找出passwd中以root开头行


 grep -i ^root passwd  #找出passwd中以root开头的行并且忽略大小写


 grep root$ passwd     #找出passwd中以root结尾的行


 grep -E "^root|root$" passwd   #过滤以root开头或以root结尾的行

 egrep "^root|root$" passwd     #说明 egrep 等同于 grep -E



@@显示passwd里root在中间的行

 grep -i root passwd | grep -i -v -E "^root|root$"   #-i表示忽略大小写


2)grep 中正则表达式:

 ## . 代表一个任意字符

'r..t'           #在r和t之间有2个任意字符

'r....'          #在r的后面有4个任意字符

'..t'            #在t的前面有2个任意字符

 

3)grep中字符的匹配位置设定:

## ^ 表示以……开头    $ 表示以……结尾    \<   \>  表示不做任何拓展

^root                        #以关键字root开头

root$                        #以关键字root结尾

\<root                      #关键字root之前不做拓展 (精确匹配)

root\>                      #关键字root之后不做拓展

\<root\>                  #关键字root前后不做拓展


实验:

 vim test

 cat test


 grep 'r.t' test


 grep 'rt' test


 grep 'r..t' test


 grep '\<r..t' test


 grep '\<r..t\>' test


 

4)grep中字符的匹配次数设定:

*                         #字符出现0-任意次

\?                     #字符出现0-1次          ## \可以不写

\+                     #字符出现1-任意次   

\{n\}                 #字符出现n次

\{m,n\}             #字符出现最少m次,最多n次  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值