sed 用数组替换 ip 地址字符串

sed 用数组替换 ip 地址字符串

我需要包含network_ip_v4_address未包含的数组,因为需要将数组包含为数组。

例如。在我的下面的代码中"network_ip_v4_address":"20.38.32.202"不是一个数组(是一个字符串)。该行必须更改,"network_ip_v4_address":["20.38.32.202"]但已经包含在数组中的行不应被触及。

{
   "network_ip_v4_address":"20.38.32.202",
   "mac_address": "A0:12:34:45",
   "network_ip_v4_address": [
        "10.38.61.1",
        "10.38.32.1"
    ],i
   "network_gateway_address": [
        "10.38.62.1",
        "10.38.33.1"
    ],

答案1

鉴于你的例子,我认为这对于 GNU sed 是有效的:

sed -E '/4_address": \[/! s/(4_address":)([^,]*)/\1[\2]/' file

相关内容