正则表达式:使用sed替换两个字符串(不包括字符串本身)之间的字符

时间:2018-06-17 18:36:12

标签: regex shell unix sed replace

我有一个小问题。我想在两个字符串之间替换一个字符/单个字符串,但是想要自己保留字符串"不受伤害"使用 sed

输入是:

<hello> <world>

我想要的输出:

<hello>
<world>

我的第一次尝试:

echo "<hello> <world>" | sed 's/>.</\n/g'

它的输出:

<hello
world>

正如您所看到的,&#34;&gt;&#34;来自&#34;&#34;和&#34;&lt;&#34;来自&#34;&#34;已经使用我上面的行删除了。

如何阻止它这样做?

2 个答案:

答案 0 :(得分:2)

这个也有效:

echo "<hello> <world>" | sed 's/>./>\n/g'

答案 1 :(得分:1)

改为使用:

echo "<hello> <world>" | sed 's/>.</>\n</g'

这可能是您要替换的所有字符都是静态的。