繁体   English   中英

Linux SED RegEx替换,但保留通配符

[英]Linux SED RegEx replace, but keep wildcards

如果我有一个包含这个字符串的字符串(Foo可以是任何东西):

<tag>Foo</tag>

我将如何使用SED和RegEx将其替换为:

[tag]Foo[/tag]

我失败的尝试:

echo "<tag>Foo</tag>" | sed "s/<tag>\(.*\)<\\/tag>/[tag]\1[\\/tag]"

你的正则表达式缺少终止/

$ echo "<tag>Foo</tag>" | sed "s/<tag>\(.*\)<\\/tag>/[tag]\1[\\/tag]/"
[tag]Foo[/tag]

有了它,您可以替换所有类型的标签,而不必是特定于标签。

$echo "<tag>Foo</tag>" | sed "s/[^<]*<\([^>]*\)>\([^<]*\)<\([^>]*\)>/[\1]\2[\3]/"

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM