[shell]文本处理工具 grep sed awk

Linux修炼之旅shell篇

这次给大家介绍文本处理三剑客 grep sed awk 三大神器熟练掌握可以使操作者更高效快捷地处理大批量的信息。



一、grep 过滤

1.grep 匹配条件 处理文件

grep root passwd #过滤root关键字
grep -i root passwd #过略大小写
grep -E "\<root" passwd #root字符之前不能有字符
grep -E "root\>" passwd #root字符之后不能有字符
grep -数字 #显示过滤行以及上面几行和下面几行
grep -n #显示匹配的行所在行号
grep -A #显示过滤行以及下面几行
grep -B #显示过滤行以及上面几行
grep -v #反向过滤

下面依次展示效果
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.grep字符数量匹配规则

^westos  #以westos开有
westos$	#以westos结尾
w....s	#w开头s结尾中间4个任意字符
.....s	#s结尾前面5个任意字符
*	#字符出现任意
?	#0到1次
+	#1次到任意次
{n}	#n此
{m,n}	#m到n次
{0,n}	#0-n次
{,n}	#0-n次
{m,}	#最少m次
(xxx){2}	#xxx字符串出现2次

在这里插入图片描述
在这里插入图片描述

二、sed 替换

命令格式
sed 参数 命令 处理对象
sed 参数 处理对象 -f 处理规则文件

1.对字符的处理

p 显示

sed -n 5p passwd #显示第五行
sed -n 3,5p passwd #显示3到5行
sed -ne "3p;5p“ passwd #显示3和5行
sed -ne 1,5p passwd #1-5行
sed -ne '5,$p' passwd #5到最后以行
sed -n '/^#/p' fstab #显示以#开头的行

还是以之前粘贴过来的pass文件为例测试效果
请添加图片描述
请添加图片描述在这里插入图片描述

d 删除

sed  5d passwd	#删除第五行
sed	 '/^#/d' fstab	#把#开头的行删除
sed	 '/^UUID/!d' fstab	#除了UUID以外的行都删除
sed	 -e '5,$d' passwd

在这里插入图片描述在这里插入图片描述

a 添加

包含的内容基本与之前的举例类似,相应动作换为添加就是代码意思

sed -e '$a hello world' fstab #在最后直接添加
sed -e '$a hello\nworld' fstab
sed -e '/^#/a hello world' fstab #在有#的行后添加

在这里插入图片描述在这里插入图片描述在这里插入图片描述

c 替换

sed -e '/^#/c hello world' fstab
sed '5d hello world' fstab

在这里插入图片描述在这里插入图片描述

w 替换

sed '/^UUID/w westofile' fstab #把fstab中UUID开头的行写入westosfile中

在这里插入图片描述

i 插入

sed '5ihello westos' fstab

在这里插入图片描述

三、awk

awk -F 分隔符 BEGIN{}{}END{} FILENAME

NR	#行数
NF	#列数
FILENAME	#文件名称本身
westos		#westos变量值
“westos”	#westos字符串
/bash$/		#条件
/条件1|条件2/	#条件1或者条件2
/条件1/||/条件2/ #条件1或者条件2
/条件1/&&/条件2/ #条件1并且条件2
$0	#所有的列
$1	#第一列
$2	#第二列
$3	#第三列

请添加图片描述


awk -F : '$6!~/home/&&/bash$/{print}' /etc/passwd
/etc/passwd文件的第六列没有home关键字并且以bash结尾的行
在这里插入图片描述
请添加图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值