同事们,找不到解决办法:
我有一个具有相同序列的文件: ..."TargetGroupArn": "randomsetishere-green/e23cf778ec867027", "Weight": 100 }, { "TargetGroupArn": "randomsetishere-blue/a474ffa6a7667868", "Weight": 0 } ....
我需要 搜索并替换 -green 的权重值 (1....100)。
正如我所见,我需要搜索序列 -green/[任何符号]", "Weight": [1-3 个数字符号] 并替换为 -green -green/[同一组符号]", "Weight “:[我自己的号码]。
寻找所需的并不难:
's/-green\/.*Weight": [0-9]*'
不知道如何“保存”找到的“相同的任何符号”并使用 sed 将其添加到替换模式。
寻找所需的并不难:
's/-green\/.*Weight": [0-9]*'
但是如何返回这样的东西(粗体必须替换为已经找到的)
's/-green\/.*Weight": 100'
我正在考虑搜索模式并在此模式末尾反转“:[0-9] *”到“:100”
这会将数字替换为 999:
sed 's=\(-green/[^"]*", "Weight": \)[0-9]*=\1999='
=
而不是 /
作为替换分隔符,以防止需要反斜杠。[^"]*
而不是 .*
,否则 .*
将匹配线路上的最后一个 Weight
。\1
)。这样,直到数字本身的所有内容都保持不变。