在sed中使用多个感叹号有什么意义?
POSIX sed文档说: 一个功能可以前面有一个或多个'!' 字符,在这种情况下,如果地址未选择模式空间,则应应用该功能。零个或多个<空白>字符应在第一个'!'之前接受 字符。尚不确定<blank>字符是否可以跟在'!'之后 字符,符合标准的应用程序不得使用“!” 带有<blank>字符的字符。 因此,使用任何POSIX sed,我们都可以: sed -e '/pattern/!d' file 与写作相同: sed -e '/pattern/!!d' file 而!!!d和n感叹号的标志仍然是罚款(含三级测试sed的版本传家宝工具箱中)。我看不到多个感叹号之间有什么好处。 为什么规范中允许使用该语法?在实际应用中它如何有用? 在这种情况下,GNU sed似乎不兼容,如果我们使用多个感叹号,它将抱怨: $ sed -e '/pattern/!!d' file sed: -e expression #1, char 11: multiple `!'s