在vi编辑器中查找并使用通配符替换



我有一个类似json格式的大文本文件。部分文本是这样的:

...
{
"term": 
"to_zone" : ["sas"]
"from_zone" : ["sas-inside inside"]
"source" : ["10.100.31.111/32 10.100.31.112/32 10.100.31.113/32 100.100.5.31/32 100.100.5.32/32 100.100.5.33/32"]
"destination": ["100.100.8.129/32 100.100.8.130/32 100.100.8.131/32"]
"source_user" : ["any"]
"category" : ["any"]
"application" : ["any"]
"service" : ["tcp-2181 tcp-10500"]
"source_hip" : ["any"]
"destination_hip" : ["any"]
"tag" : ["sas"]
"action" : ["allow"]
"profile_setting" : ["alert-only"]
},

在vi编辑器中是否有可能扫描"列表"并插入引号和逗号以完成元素?

预期结果将是:

{
"term": 
"to_zone" : ["sas"]
"from_zone" : ["sas-inside inside"]
"source" : ["10.100.31.111/32","10.100.31.112/32","10.100.31.113/32","100.100.5.31/32","100.100.5.32/32","100.100.5.33/32"]
"destination": ["100.100.8.129/32","100.100.8.130/32","100.100.8.131/32"]
"source_user" : ["any"]
"category" : ["any"]
"application" : ["any"]
"service" : ["tcp-2181","tcp-10500"]
"source_hip" : ["any"]
"destination_hip" : ["any"]
"tag" : ["sas"]
"action" : ["allow"]
"profile_setting" : ["alert-only"]
},

我不知道正则表达式将如何在vi编辑器的查找和替换功能。请注意,在列表的开头和结尾都有已存在的引号,从而使其成为一个单元素字符串list。

vi有一个搜索和替换功能。您将不得不多次运行此命令,直到它再也找不到模式为止,但是应该可以这样做。

:%s/([".{-}) /1","/g

最新更新