【发布时间】:2018-01-01 15:05:43
【问题描述】:
我想替换内容为多行的字符串。在每一行的末尾,它可以是 /n 或 \r\n,对于缩进,它可以是制表符或空格,我不知道。我认为查找字符串的最佳方法是使用模式并使用 sed 替换它。这是文件的内容:
<Element Blabla>
A content
A second content
A third content
</Element>
<Element TheSearchedElement>
A content
A second content
A third content
</Element>
<Element Blabla2>
A content
A second content
A third content
</Element>
我想替换这个块:
<Element TheSearchedElement>
A content
A second content
A third content
</Element>
通过这个块:
<Element TheSearchedElement>
A content
A second replaced
A third content
</Element>
我想我应该创建一个包含要查找的模式的变量 oldPattern 和一个包含要编写的新模式的变量 newPattern。 这是我脚本的内容:
$oldPattern='<Element TheSearchedElement>*A content*A second content*A third*content*</Element>'
$newPattern='<Element TheSearchedElement>/n/tA content/n/tA second replaced/n/tA third*content/n</Element>'
sed -e '/oldPattern/newPattern/' file.conf
问题是我在输出时出错: script.sh: 1: script.sh: =一个内容第二个内容第三个内容*: 未找到 script.sh: 2: script.sh: =/n/tA 内容/n/tA 第二替换/n/t第三*内容/n: 未找到 sed: -e expression n°1, char 14: 命令后的无用字符
希望你能帮助我。
【问题讨论】:
-
这是一个 XML 文件吗?
-
@Cyrus,不,这是一个 apache 配置文件。