16_Shell好用工具:sed

16_Shell好用工具:sed

零、语法解析

sed [选项参数] [模式匹配/sed命令] 文件

命令说明
aadd,新增
iinsert,新增
cchange,修改
ssubstitute,替换
ddelete,删除
pprint, 打印 通常与 -n 连用

一、增(新增行)

1.1、【添加数据】指定行号后添加数据

#第3行后添加一行
sed '3aHello World.' sed.txt

在这里插入图片描述

1.2、【添加数据】指定行号前添加数据

#第3行前添加一行
sed '3iHello World.' sed.txt

在这里插入图片描述

1.3、【添加数据】指定内容行前后添加数据(前:i 后:a)

#包含Holen的行之前添加一行
sed '/Holen/iHello World.' sed.txt

#包含Holen的行之后添加一行
sed '/Holen/aHello World.' sed.txt

在这里插入图片描述

1.4、【添加数据】最后一行前后添加数据(前:i 后:a)

#最后一行前添加一行
sed '$iHello World.' sed.txt

#最后一行后添加一行
sed '$aHello World.' sed.txt

在这里插入图片描述

二、删(删除行)

2.1、【删除数据】删除指定行号数据

#删除第二行数据
sed '2d' sed.txt

在这里插入图片描述

2.2、【删除数据】删除指定间隔行数据

#从第一行开始,每隔两行删除行数据(删除奇数行数据 1、3、5...)
sed '1~2d' sed.txt

在这里插入图片描述

2.3、【删除数据】删除指定范围行数据

#删除第1到第5行数据
sed '1,5d' sed.txt

在这里插入图片描述

2.4、【删除数据】删除数据时取反

#删除第1到第5行数据 取反
sed '1,5!d' sed.txt

在这里插入图片描述

2.5、【删除数据】删除最后一行

#删除最后一行
sed '$d' sed.txt

在这里插入图片描述

2.6、【删除数据】删除指定内容行

#删除包含Holen的行
sed '/Holen/d' sed.txt

在这里插入图片描述

2.7、【删除数据】删除指定内容行到最后一行

#删除包含Holen的行到最后一行,全删
sed '/Holen/,$d' sed.txt

在这里插入图片描述

2.8、【删除数据】删除指定内容行及下一行

#删除包含Holen的行及下一行
sed '/Holen/,+1d' sed.txt

在这里插入图片描述

2.9、【删除数据】删除不匹配行

#删除不包含Holen或者Happy的行
sed '/Holen\|Happy/!d' sed.txt

在这里插入图片描述

三、改(修改-整行 替换-行内数据)

3.1、【修改数据-整行】修改指定行

#修改第一行为"Hello World"
sed '1cHello World.' sed.txt

在这里插入图片描述

3.2、【修改数据-整行】修改最后一行

#修改最后一行为"Hello World"
sed '$cHello World.' sed.txt

在这里插入图片描述

3.3、【修改数据-整行】指定内容行修改

#将包含Holen的行整体修改为China
sed '/Holen/cChina.' sed.txt

在这里插入图片描述

3.4、【替换数据-行内数据】每行指定内容数据替换

#替换每行第1个出现的Holen为Ylia
sed 's/Holen/Ylia/' sed.txt

#替换每行第2个出现的Holen为Ylia
sed 's/Holen/Ylia/2' sed.txt

#替换每行所有的Holen为Ylia
sed 's/Holen/Ylia/g' sed.txt

在这里插入图片描述

3.5、【替换数据-行内数据】每行指定内容数据替换并写入文件

#替换每行所有的Holen为Ylia 并 写入文件 sed_new.txt
sed 's/Holen/Ylia/gw sed_new.txt' sed.txt

在这里插入图片描述

3.6、【替换数据-行内数据】正则表达式数据替换

#匹配包含H的行,并替换o后面内容为空
sed '/H/s/o*//g' sed.txt

在这里插入图片描述

3.7、【替换数据-行内数据】每行末尾添加数据

#每行末尾添加 CH
sed '/s/$/& CH' sed.txt

#这样也可以
sed 's/$/ CH/' sed.txt

在这里插入图片描述

3.8、【替换数据-行内数据】每行行首添加数据

#每行行首添加 #
sed 's/^/# /' sed.txt

在这里插入图片描述

四、查(略)

不推荐,建议使用grep,不过多深究

五、其他重要命令

选项参数说明
-i修改内容同步更新源文件
-e多命令执行

5.1、多命令执行

#删除第一行同时最后一行新增“Hi Holen”
#写法一:
sed -e '1d' -e '$aHi Holen' sed.txt

#写法二:
sed '1d;$aHi Holen' sed.txt

在这里插入图片描述

5.2、源文件修改

#第三行后添加Hello World 同时写入源文件
sed -i '3aHello world' sed.txt

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值