首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sed模式查找和替换行

sed模式查找和替换行
EN

Stack Overflow用户
提问于 2014-06-30 10:12:42
回答 2查看 68关注 0票数 0

我需要使用sed搜索这一行

代码语言:javascript
复制
<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443" />

用新的3行替换它

代码语言:javascript
复制
<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443"
maxThreads="300" minSpareThreads="25" maxSpareThreads="75" acceptCount="100"
enableLookups="false"  connectionTimeout="60000" />

我用了下面的模式,但我想我错过了逃跑的部分

代码语言:javascript
复制
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'

请告诉我

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-30 10:18:28

问题是您的搜索字符串确实包含/。我把它作为sed代码的一部分。

试一试

代码语言:javascript
复制
sed -i 's|search|replace|g' file

sed在字符串之前搜索一个空格。需要移除:

代码语言:javascript
复制
s/ <

对,是这样

代码语言:javascript
复制
s/<

完全命令:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2014-06-30 10:20:10

或者,将搜索字符串中的斜杠反斜杠(您还应该对点进行反斜杠,以防止它们与任何字符匹配)。

或者,使用适当的XML处理工具来处理XML数据。例如,xsh

代码语言:javascript
复制
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 ;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24487755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档