曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5929|回复: 0
打印 上一主题 下一主题

使用大括号{ } -- 命令分组

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2011-9-1 15:27:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 sed 中使用大括号 '{ }' 可以在相同的地址上(或相同的行上),或在一个地址嵌套在另一个地址中应用多个命令。


所谓嵌套地址是指,如果指定了行的范围,然后再在这个范围内指定另一行,这个行(地址)就是嵌套行(嵌套地址)。


有一个文本如下:
$ cat china.txt
hello world
spring
red wind


.Blood
effect


something
good


great
.CHINA


are you ok?

下面使用大括号 { } 应用地址分组找出 .Blood 和 .CHINA 之间的行,然后删掉其中的空格行,并将 "oo" 换成大写的 "OO" 。


sed 命令如下应用:
$ sed '/^\.Bl/, /^\.CH/ {
/^$/d; s/oo/OO/g;
}' china.txt
hello world
spring
red wind


.BlOOd
effect
something
gOOd
great
.CHINA


are you ok?

上面 sed 命令应用中, /^\.Bl/, /^\.CH/ 表示查找出匹配  .Blood 和 .CHINA 之间的行,然后紧跟着写左大括号,并在括号内应用了两条命令,第 1 条用于删除空格行,第 2 条将 oo 替换为 OO ,最后不忘将右括号写回。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-3 23:15 , Processed in 0.078128 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表