sed学习笔记

http://feeds.feedburner.com/chenfuwei
sed是一种在线编辑器,它一次处理一行内容。


一般sed有两种调用方式:

sed [options] 'command' {filenames}

sed [options] -f scriptfile {filenames}


删除操作,命令d

$ sed '3d' test                删除test文件的第三行

$ sed '1,3d' test            删除test文件的第一行到的三行

$ sed '3,$d' test            删除的第三行后的所有行

$ sed '/^A/d' test            删除以A开头的行

$ sed '/david/d' test            删除包含有david的所有行


打印操作,命令p

$ sed -n '/david/p' test        只输出含有david的行

$ sed -n '/david/,/wade/p' test        匹配从包含有david的行到包含有wade的行之前所有行,如果匹配不到wade则匹配从含有david的行开始的所有行

$ sed -n -e '=' -e 'p' test        打印行号和每一行,-e使得=和p先后作用于一行


替换操作,命令s

$ sed 's/david/wade/g' test        将每一行的david替换为wade,g代表全局替换,否则将只替换每行第一个

$ sed '1,3s/david/wade/g' test        将第一行到第三行的david替换成wade

$ sed 's:/home/david:/home/wade:g' test 将/home/david替换为/home/wade,这里用:取代/为分割符

$ sed -n 's/^david/wade/p' test        将以david开头的行替换成wade开头并打印

$ sed -n 's/\(log\)in/\1out/p' test    将login以logout替换并打印

$ sed 's/.*/david: &/' test        在每行前面加上加上david:,&代表匹配到的本身


插入操作,命令i,a,c

$ sed '/david/i\hello world!' test    在含有david的行之前加入内容为'hello world!'的行

$ sed '/david/a\hello world!' test    在含有david的行之后加入内容为'hello world!'的行

$ sed '/david/c\hello world!' test    把含有david的行替换为内容为he'llo world!'的行


文件操作,命令r,w

$ sed '/david/r test1' test        将test1的内容读入显示在与david匹配的行后面

$ sed -n '/david/w test' test1        将test1中包含david的行写入test中


保持并替换,命令h,x

$ sed -e '/wade/h' -e '/david/x' test    用含有wade的行替换含有david的行替换


保持并获取,命令h,G

$ sed -e '/david/h' -e '/wade/G' test    把含有david的行保存并插入含有wade的行的后面


处理下一行,命令n

$ sed '/david/{ n; s/hello/wade/; }' test 匹配到david后移到下一行并将这一行的hello替换为wade
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(1213) | 评论(0) | 转发(0) |
0

上一篇:[ZT]awk学习笔记

下一篇:iptables TIPS

给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值