shell中的文本处理正则表达式

1.grep 文本过滤命令

grep 匹配条件 处理文件
grep root passwd 只有root小写
在这里插入图片描述

grep ^root passwd 前面为root
在这里插入图片描述

grep root$ passwd 后面为root
在这里插入图片描述

grep -i root passwd 不区分大小写
在这里插入图片描述

grep -E “root|ROOT” passwd 扩展在加其它符号后都要加-E
在这里插入图片描述

grep中的正则表达式
grep westos file
在这里插入图片描述

grep w…s file
在这里插入图片描述

grep …s file
在这里插入图片描述

grep w… file
在这里插入图片描述

grep中字符的匹配次数设定
grep xy file 字符出现[0-任意次]
在这里插入图片描述

-E x?y 字符出现y之前x出现[0-1次]
在这里插入图片描述

-E x+y 字符出现y之前x出现[1-任意次]
在这里插入图片描述
{n} 字符出现[n次]
{m,n} 字符出现[最少m次,最多n次]
{0,n} 字符出现[0-n次]
{m,} 字符出现[至少m次]
x.*y xy之间任意字符都可匹配
在这里插入图片描述

2.sed行编辑器

符合模式条件的处理,不符合条件的不予处理
处理完成之后把缓冲区的内容送往屏幕
接着处理下一行,这样不断重复,直到文件末尾

sed对字符的处理
p 显示
sed -n ‘/^#/p’ fstab 只显示#开头的行
在这里插入图片描述

sed -n ‘/^#/!p’ fstab 不显示#开头的行
在这里插入图片描述

sed -n ‘/^UUID/p’ fstab 以UUID开头的行
在这里插入图片描述

sed -n ‘/1$/p’ fstab 以1结尾的行
在这里插入图片描述

sed -n ‘2,6p’ fstab 显示2到6行
在这里插入图片描述

sed -n ‘2p;6p’ fstab 显示2行和6行
在这里插入图片描述

sed -n ‘/^$/p’ fstab 显示空白行
在这里插入图片描述

d删除(用法与显示类似)
sed -n ‘/^#/d’ fstab 删除#开头的行
sed -n ‘/^#/!d’ fstab 删除不是#开头的行
sed -n ‘/^UUID/d’ fstab 删除UUID开头的行
sed -n ‘2,6d’ fstab 删除2到6行
sed -n ‘2d;6d’ fstab 删除2行和6行

a添加
sed ‘//etc/a123456’ fstab 在etc行添加123456
在这里插入图片描述

i插入
sed ‘//etc/i123456’ fstab 在etc行插入123456
在这里插入图片描述

c替换
sed ‘//etc/c123456’ fstab 将etc行替换成123456
在这里插入图片描述

w写入
sed ‘//etc/wfile’ fstab 将etc行写入file中
在这里插入图片描述

sed -n ‘//etc/=’ fstab etc行在文件中的第几行
在这里插入图片描述

sed ‘G’ fstab 每行加空行隔开
在这里插入图片描述

sed ‘=’ fstab 每行加行号
在这里插入图片描述

sed ‘s/sbin/12345/g’ passwd 把全文的sbin换成12345
在这里插入图片描述

sed ‘3s/sbin/12345/g’ passwd 把第三行的sbin换成12345
在这里插入图片描述

sed ‘/bin/,/lp/s/sbin/12345/g’ passwd 把bin行到lp行的sbin换成12345
在这里插入图片描述

3.awk报告生成器

awk会逐行处理文本,支持在处理第一行之前做一些准备工作
以及在处理完最后一行做些总结性质的工作。
BEGIN{}:读入第一行文本前执行,一般用来初始化操作。
{}:逐行处理。
END{}:处理完最后一行文本之后操作,一般用来输出处理结果。

awk基本用法
awk ‘{print NR}’ passwd 显示文件的行数
在这里插入图片描述

awk ‘{print NF}’ passwd 显示文件的列数
在这里插入图片描述

awk ‘BEDIN{NAME=0}{print $1}’ passwd 显示第一列($1)的名字
在这里插入图片描述

awk ‘BEDIN{a=5;print a+13}’ passwd 打印a为5,加13为多少。
在这里插入图片描述

awk ‘NR==1{print}’ passwd 显示文件第一行
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值