Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5488701
  • 博文数量: 890
  • 博客积分: 12876
  • 博客等级: 上将
  • 技术积分: 10760
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-04 14:18
个人简介

猝然临之而不惊,无故加之而不怒。

文章分类

全部博文(890)

文章存档

2016年(1)

2014年(18)

2013年(41)

2012年(48)

2011年(65)

2010年(84)

2009年(121)

2008年(101)

2007年(129)

2006年(95)

2005年(118)

2004年(69)

分类:

2007-01-25 12:11:03


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
阅读(1876) | 评论(0) | 转发(0) |
0

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

下一篇:iptables TIPS

给主人留下些什么吧!~~