[英]sed: unterminated address regex
根据我对sed的了解,括号内的多个指令应该起作用。
第二个sed命令运行正常。
但是,为什么下面的第一个sed命令会失败?
echo "-------"
sed -e '/UNCOMMENT THIS/,/jmx/ { \
/foo/d \
/test/d \
}' \
test.txt
echo "-------"
sed -e '/UNCOMMENT THIS/,/jmx/ { /foo/d; /test/d }' \
test.txt
echo "-------"
的test.txt
<!-- To enable authentication security checks, uncomment the following security domain name -->
<!--UNCOMMENT THIS
foo
test
<property name="securityDomain">jmx-console</property>
-->
在单引号( '
)之间,反斜杠被解释为“实际反斜杠”,因此不会解释转义字符”。
您可以通过在引号环境中使用不带反斜杠的新行来解决此问题:
sed -e '/UNCOMMENT THIS/,/jmx/ {
/foo/d
/test/d
}' \
test.txt
如您所见,您需要在命令末尾提供反斜杠,以确保将test.txt
与命令调用分组在一起。 但是bash
自动在两个单引号之间对内容进行分组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.