在sed中使用分号作为命令分隔符有多便携?

Wil*_*ell 12 sed

在sed中,使用由分号分隔的多个命令是相当常见的:

$ sed -e '/re/{s//replace/p; q;}

但是,标准(例如http://pubs.opengroup.org/onlinepubs/9699919799/)仅允许换行符作为分隔符:

$ sed -e '/re/{
    s//replace/p
    q
}

是否仍有许多常见的sed实现仍在使用,不允许使用分号?IOW,一个打算便携的sed脚本可以使用分号吗?

Abb*_*fei 7

POSIX规范sed :

比其他命令动词{,一个,b,c ^,,- [R ,,瓦特,:,和#之后可以进行一个<semicolon>,可选<blank>字符和另一个命令动词.但是,当s命令动词与w标志一起使用时,以这种方式使用另一个命令跟随它会产生未定义的结果.

因此,除了上面提到的那些命令之外,大多数命令都可以用分号分隔.

/[^\{abcirtw:#];[[:space:]]*/ :-)