gpt4 book ai didi

Vim 查找和替换。我怎么能做到这一点?

转载 作者:行者123 更新时间:2023-12-04 14:27:10 25 4
gpt4 key购买 nike

我有一个要对其进行一些更改的 XML 文件。例如,我想在 Vim 中打开文件并运行查找并替换 memory="..." 的所有实例。归因于 memory="24G"但前提是元素来自 name="node-0..." .下面是一个例子:

process name="node-0-3" numaNode="3" memory="14G" logConfig="logback-shards.xml"
process name="node-0-4" numaNode="4" memory="34G" logConfig="logback-shards.xml"
process name="node-0-5" numaNode="5" memory="44G" logConfig="logback-shards.xml"

用。。。来代替
process name="node-0-3" numaNode="3" memory="24G" logConfig="logback-shards.xml"
process name="node-0-4" numaNode="4" memory="24G" logConfig="logback-shards.xml"
process name="node-0-5" numaNode="5" memory="24G" logConfig="logback-shards.xml"

我怎样才能在 Vim 中做到这一点?

最佳答案

:g/node-0/s/memory="\zs\d\{2\}\u\ze"/24G

一步步:
  • :g/node-0
    使用 :global命令查找所有包含 node-0 的行
  • s/memory="\zs\d\{2\}\u\ze"/24G
  • 查找 memory="
  • 通过在此处开始比赛 \zs 将其排除在实际比赛之外
  • \d\{2\}\u 匹配两个数字后跟一个大写字母
  • 实际比赛到此结束 \ze
  • 省略结束双引号。
  • 将实际匹配替换为 24G

  • (使用更准确的模式进行编辑以适合提问者的真实用例)

    编辑

    使用 Ingo 的评论:
    :g/node-0/s/memory="\zs[^"]*\ze"/24G

    关于Vim 查找和替换。我怎么能做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691397/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com