【linux/shell案例实战】sed使用教程

目录

一.sed是什么

二.sed使用方法

1.sed输出文本行(p= print)

2.sed 删除文本行(d=delete, sun solaris不支持-i操作)

3.sed增加空行

4. sed 替换文本(s=substition)

5.sed 插入文本(i=insert行前插入,a=append行后插入)


一.sed是什么

Sed(stream editor,流文件编辑器)

Sed是非交互式编辑器,默认不会修改文件,而是输出打印到屏幕处理

选项说明:

  • -i:直接修改文件内容
  • -n:安静模式,只输出被sed 处理过的内容
  • -e:指定sed动作,可以指定多个
  • -r:启用扩展正则,与其他选项一起使用需作为首选项
  • -f:直接将 sed 的命令写在一个文件内,-f filename 则可运行 filename 内的sed命令1)

二.sed使用方法

1.sed输出文本行(p= print)

功能代码
输出所有行sed 'lp' file/ sed -n 'p' file
输出第一行sed -n '1p' file
输出最后一行sed -n '$p' file
输出第5行到最后一行sed -n '5,$p' file
输出第4到7行sed -n '4,7p' file
输出第4行及其后10行sed -n '4,+10p' file
输出第2,5,7行,用分号隔离sed -n '2p;5p;7p' file
输出以关键字ID开头的行sed -n '/^ID/p' file
输出一对关键字之前包含的内容(需要再把标签删掉)sed-n '/A:/,/A:/p' file
输出奇数行sed -n 'p;n' file
输出偶数行sed -n 'n;p' file
输出以关键字LOCAL结尾的行sed -n '/LOCAL$/p' file
输出文件中的行数sed -n '$=' file
输出倒数第二行sed -n 'x,$p' file

2.sed 删除文本行(d=delete, sun solaris不支持-i操作)

用法同输出问题格式类似,将p换成d即可。

功能代码
删除第一行sed '1d' file
删除以关键字table开头的行sed '/^table/d' file
删除不是以数字开头的行sed '/^[0-9]!/d'
删除所有的空行sed '/^$/d'

3.sed增加空行

功能代码
在每行前面加一行空行sed '{x;p;x;}' file
在每行前面加两行空行sed '{x;p;x;x;p;x;}' file
在第一行前面添加空行sed '1{x;p;x;}' file
在关键词前添加空行sed '/ID/{x;p;x;}' file
在每行后面加一行空行sed 'G' file
在每行后面加两行空行sed 'G;G' file
在第一行后面添加空行sed '1G' file


 

4. sed 替换文本(s=substition)

功能代码
将每行中的第1个xml替换成XMLsed 's/xml/XML/' file
将第2行中第3个xml替换成XMLsed '2s/xml/XML/3' file
将所有的xml替换成XMLsed 's/xml/XML/g' file
将所有的xml都删除,替换成空sed 's/xml//g' file
将所有的doc都替换成docs,&代表查找串sed 's/doc/&s/g' file
将4-7行注释掉,行前加#号sed '4, 7s/^/#/g' file
将4-7行解除注释,去掉行前#号sed '4,7s/^#//g' file


5.sed 插入文本(i=insert行前插入,a=append行后插入)

功能代码
在第2行之前添加文本行YYsed '2iYY' file
在第4到7行之前添加文本行YYsed '4,7iYY' file
在第2行之后添加文本行YYsed '2aYY' file
在第4到7行之后添加文本行YYsed '4,7aYY' file
在以xx开头的行之后添加文本行YYsed '/xx/aYY' file
在最后一行添加hellosed '$aYY' file

  • 35
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜鸟赵大宝

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值