5.5. 寻址的全局视角——分组命令
5.5 寻址的全局视角——分组命令
大括号{}
在 sed 中被用来在一个地址中嵌套另一个地址或者对同一个地址应用多个命令。如果你想指定一个行范围,然后在那个范围中指定另外一个地址,你可以嵌套地址,比如要删除只在 tbl 输入块中的空白行,使用下面的命令:
/^\.TS/,/^\.TE/{
/^$/d
}
开始的大括号{}
必须结束一行,结束的大括号{}
必须自己在一行上,确保在大括号{}
后面没有空格。
你也可以通过将多个编辑命令包裹在大括号{}
内,将这些命令应用于同一个行范围,如下所示:
/ˆ\.TS/,/ˆ\.TE/{
/ˆ$/d
s/ˆ\.ps 10/.ps 8/
s/ˆ\.vs 12/.vs 10/
}
这个例子不仅删除了 tbl 输入中的空行,它还使用替换命令 s 改变了几个 troff 请求。这些命令只被应用于在 .TS/ te 块中的行。
推荐文章: