Chinaunix首页 | 论坛 | 博客
  • 博客访问: 110456
  • 博文数量: 38
  • 博客积分: 330
  • 博客等级: 一等列兵
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-08 23:30
文章分类

全部博文(38)

文章存档

2012年(36)

2011年(2)

我的朋友

分类: LINUX

2012-02-27 17:56:38

pattern space
sed维护一种模式空间,即一个工作区或临时缓冲区
当应用了所有的指令时,当前行被输出并且输入的下一行被读入模式空间。然后脚本中的
命令应用于新读入的行。
sed还维护了称为保持空间(hold space)的另一个临时缓存区。可以将模式空间的内容复制
到保持空间并在以后检索它们。

分组命令
sed使用大括号{}将一个地址嵌套在另一个地址中,或者在相同的地址上应用多个命令。如果
项指定行的范围,然后再这个范围内指定另一个地址,则可以嵌套地址。
左大括号必须在行末,而且右大括号本身必须单独占一行。要确保在大括号之后没有空格。

可以使用大括号将编辑命令括起来对某个范围的行应用多个命令

#测试
diff testfile newfile

替换
[address]s/pattern/replacement/flag
flag:
n        1-512之间的一个数字,表示对文本模式中指定模式第n次出现的情况进行替换
g        全局
p        打印模式空间的内容

replacement:
特殊字符
&        用正则表达式匹配的内容进行替换
\n        匹配第n个字串(n是一个数字),这个字串以前在pattern中用\(\)指定
\        转义

下一步
next命令(n)输出模式空间的内容,然后读取输入的下一行,而不用返回到脚本的顶端
next命令改变了正常的流控制,直到脚本的底部才会输出模式空间的内容,它总是在读入新


阅读(1398) | 评论(0) | 转发(0) |
0

上一篇:sed1

下一篇:awk1

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