如何用sed替换第一个匹配文本块?

用户11316197

我正在尝试用 sed 替换第一个匹配文本块。考虑这个例子。

read -r -d '' VAR <<"EOF"
<Button3d
some text
some text
/>

<Button3d
some text
some text
/>
EOF

sed '1,/^<Button3d/,/^\/>/c {
</Button\
different text\
different text\
/>\
}' <<< $VAR

但是使用 GNU sed 我收到以下错误:

sed:-e 表达式 #1,字符 15:未知命令:`,'

预期输出应该是:

<Button
different text
different text
/>

<Button3d
some text
some text
/>

有些人建议使用 XML 解析器,但是对于这个简单的例子来说,这完全是矫枉过正。

沃尔特

当您sed支持时-z,您可以使用类似

sed -z 's#/>#\r#g; s/<Button3d[^\r]*\r//; s#\r#/>#g' <<< "${VAR}"

编辑:其他文本可以插入

sed -z 's#/>#\r#g; s/<Button3d[^\r]*\r/<Button3d\nOther text\nSecond line\n\r/; s#\r#/>#g' <<< "${VAR}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除与 sed 正则表达式匹配的第一个文本块

来自分类Dev

使用“ sed”仅替换第一个和最后一个匹配项

来自分类Dev

用 sed 匹配后替换第一个匹配

来自分类Dev

sed 多个匹配替换第一个匹配值

来自分类Dev

使用sed替换为第一个匹配字符

来自分类Dev

sed-尝试替换比赛后的第一个匹配项

来自分类Dev

仅在第一个匹配行上用sed替换

来自分类Dev

sed - 在第一个正则表达式匹配后替换逗号

来自分类Dev

如何用该列表的第一个URL替换一堆URL

来自分类Dev

如何用不同的字符替换字符串中的第一个空格?

来自分类Dev

如何用不同的字符替换字符串中的第一个空格?

来自分类Dev

如何用序列号替换CSV中的第一个元素?

来自分类Dev

Javascript:如果对象具有匹配的键,如何用第二个对象中的值替换第一个对象的值

来自分类Dev

如何替换除第一个匹配项外的所有匹配字符

来自分类Dev

sed仅删除第一个模式匹配

来自分类Dev

仅删除sed的第一个匹配项

来自分类Dev

提取符合sed的第一个匹配项

来自分类Dev

如何使用sed匹配并保持第一个数字在一行中?

来自分类Dev

在第一个匹配的地址范围之后,如何让sed退出?

来自分类Dev

如何替换Scala列表中的第一个匹配项?

来自分类Dev

如何仅使用.Net Regex.Replace替换第一个匹配项

来自分类Dev

如何仅使用.Net Regex.Replace替换第一个匹配项

来自分类Dev

AWK单行替换仅匹配第一个匹配的正则表达式的文本

来自分类Dev

如何用第二个JFrame替换应用程序中的第一个JFrame?

来自分类Dev

sed更改另一个匹配项的第一个匹配项

来自分类Dev

如何在sed行中匹配除第一个匹配项以外的所有匹配项?

来自分类Dev

sed仅替换特定文件的第一个前导空格匹配-处理仅CR的行尾

来自分类Dev

使用sed替换文件中的第一个匹配项-为什么要打印后续行?

来自分类Dev

如何使用sed删除所有行,直到第一列中的第一个匹配项?

Related 相关文章

  1. 1

    删除与 sed 正则表达式匹配的第一个文本块

  2. 2

    使用“ sed”仅替换第一个和最后一个匹配项

  3. 3

    用 sed 匹配后替换第一个匹配

  4. 4

    sed 多个匹配替换第一个匹配值

  5. 5

    使用sed替换为第一个匹配字符

  6. 6

    sed-尝试替换比赛后的第一个匹配项

  7. 7

    仅在第一个匹配行上用sed替换

  8. 8

    sed - 在第一个正则表达式匹配后替换逗号

  9. 9

    如何用该列表的第一个URL替换一堆URL

  10. 10

    如何用不同的字符替换字符串中的第一个空格?

  11. 11

    如何用不同的字符替换字符串中的第一个空格?

  12. 12

    如何用序列号替换CSV中的第一个元素?

  13. 13

    Javascript:如果对象具有匹配的键,如何用第二个对象中的值替换第一个对象的值

  14. 14

    如何替换除第一个匹配项外的所有匹配字符

  15. 15

    sed仅删除第一个模式匹配

  16. 16

    仅删除sed的第一个匹配项

  17. 17

    提取符合sed的第一个匹配项

  18. 18

    如何使用sed匹配并保持第一个数字在一行中?

  19. 19

    在第一个匹配的地址范围之后,如何让sed退出?

  20. 20

    如何替换Scala列表中的第一个匹配项?

  21. 21

    如何仅使用.Net Regex.Replace替换第一个匹配项

  22. 22

    如何仅使用.Net Regex.Replace替换第一个匹配项

  23. 23

    AWK单行替换仅匹配第一个匹配的正则表达式的文本

  24. 24

    如何用第二个JFrame替换应用程序中的第一个JFrame?

  25. 25

    sed更改另一个匹配项的第一个匹配项

  26. 26

    如何在sed行中匹配除第一个匹配项以外的所有匹配项?

  27. 27

    sed仅替换特定文件的第一个前导空格匹配-处理仅CR的行尾

  28. 28

    使用sed替换文件中的第一个匹配项-为什么要打印后续行?

  29. 29

    如何使用sed删除所有行,直到第一列中的第一个匹配项?

热门标签

归档