我需要使用sed搜索这一行
<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443" />用新的3行替换它
<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443"
maxThreads="300" minSpareThreads="25" maxSpareThreads="75" acceptCount="100"
enableLookups="false" connectionTimeout="60000" />我用了下面的模式,但我想我错过了逃跑的部分
sed -i 's/ <Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443" />/<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443"
maxThreads="300" minSpareThreads="25" maxSpareThreads="75" acceptCount="100"
enableLookups="false" connectionTimeout="60000" />/g'请告诉我
发布于 2014-06-30 10:18:28
问题是您的搜索字符串确实包含/。我把它作为sed代码的一部分。
试一试
sed -i 's|search|replace|g' filesed在字符串之前搜索一个空格。需要移除:
s/ <对,是这样
s/<完全命令:
sed -i 's|<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443" />|<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443" maxThreads="300" minSpareThreads="25" maxSpareThreads="75" acceptCount="100" enableLookups="false" connectionTimeout="60000" />|g' file发布于 2014-06-30 10:20:10
或者,将搜索字符串中的斜杠反斜杠(您还应该对点进行反斜杠,以防止它们与任何字符匹配)。
或者,使用适当的XML处理工具来处理XML数据。例如,xsh
open file.xml ;
for //Connector[@URIEncoding="UTF-8" and @port="8009"
and @protocol="AJP/1.3" and @redirectPort="8443"] {
set @maxThreads 300 ;
set @minSpareThreads 25 ;
set @enableLookups 'false' ;
# etc.
}
save :b ;https://stackoverflow.com/questions/24487755
复制相似问题