我的json文件有重复值,我希望使用vim删除。这是一个例子:
{
{ "greetings" : [
"hello",
"hello",
"hola",
"hola"
]
}, ...
}
到
{
{ "greetings" : [
"hello",
"hola"
]
}, ...
}
到目前为止,我能够成功删除所有重复的行,期望最后的那些。有一个额外的','打破我的匹配,我最终
{
{ "greetings" : [
"hello",
"hola",
"hola"
]
}, ...
}
答案 0 :(得分:0)
由于重复的行彼此相邻,您可以使用\1
再次匹配字符串,并使用,\?
使逗号可选:
:%s/^\(.\+\),\?\n\1\n/\1\r/gc
如果您需要限制搜索并替换为某些块,可以先使用g/../
匹配该块:
:g/[\[^[\]*]/%s/^\(.\+\),\?\n\1\n/\1\r/g