【发布时间】:2016-06-29 20:36:02
【问题描述】:
我有一个文件在 xml 标签之间保存了一个长的单行字符串,我想用 sed 替换标签之间的内容。
1300_character_long_string_here
我遇到的问题是 sed 没有替换,尽管我知道我的正则表达式选择正确。也就是说,即使我能够正确选择和替换,我也不知道如何从文件中提取替换字符串(大致一样长)并放置它。
这是我目前在命令中比较成功的尝试之一:
sed 's/\<Tag\>(.*)\<\/Tag\>/REPLACE/g' test.txt> out.txt
虽然这不起作用,但如果我尝试仅替换第一个标签,我可以看到它正在替换。
我应该在一开始就提到这是一个 AIX 系统,而不是一个 GNU 系统。
【问题讨论】:
-
你试过
's#\<Tag\>(.*)\<\/Tag\>#REPLACE#g'吗? -
搜索
replace multiline string [sed]会返回 14 个 Q/As。你看过这些答案了吗?你几乎肯定会找到一些好的建议。祝你好运。 -
正则表达式不适合修改xml文档
-
@Beta 我有,没有变化。