linux 请帮助纠正sed命令替换字符串?

lymgl2op  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(150)

我在下面的变量中定义了值,并试图在名为“server.xml”的文件中替换这些值
port_number=8081 ui_redirectPort=443
server.xml文件的内容如下

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000"/>

字符串
我使用的命令是这样的。

sed -i "s/<Connector port=\"8080\" protocol=\"HTTP\/1.1\" connectionTimeout=\"20000\" redirectPort=\"8443\" maxParameterCount=\"1000\"/<Connector port=\"$port_number\" protocol=\"HTTP\/1.1\" connectionTimeout=\"20\" redirectPort=\"$ui_redirectPort\" maxParameterCount=\"10\"/g" server.xml


我在更新值时遇到问题。请帮助构建此命令?
我使用的命令

sed -i "s/<Connector port=\"8080\" protocol=\"HTTP\/1.1\" connectionTimeout=\"20000\" redirectPort=\"8443\" maxParameterCount=\"1000\"/<Connector port=\"$port_number\" protocol=\"HTTP\/1.1\" connectionTimeout=\"20\" redirectPort=\"$ui_redirectPort\" maxParameterCount=\"10\"/g" server.xml

0lvr5msh

0lvr5msh1#

您的正则表达式与输入不匹配,因为空格中存在差异。
而不是试图匹配整行,只是替换这两个属性。

sed -i -e "s/port=\"[0-9]*\"/port=\"$port_number\"/" -e "s/redirectPort=\"[0-9]*\"/redirectPort=\"$ui_redirectPort\"/" server.xml

字符串

相关问题