Tente isso em vim
:
:g/BadFling/normal [{V]}d
O comando :global
executa um comando em todas as linhas que correspondem ao padrão (usei BadFling
como exemplo - ajuste-o, se necessário). O comando que está sendo executado neste caso é o comando :normal
, que executa comandos no modo normal. O objetivo disso é usar o poder dos comandos [{
e ]}
vim
movement que se movem entre os pares de chaves. A combinação Vd
is é usada para fazer uma exclusão de linha. Isso não é tão robusto quanto um analisador JSON, mas funciona assumindo que cada "blah1"
parte está contida em seu próprio conjunto de linhas e, portanto, uma exclusão de linha não excluirá acidentalmente nada que pertença a outro bloco. Por exemplo, a abordagem de exclusão de linha não funcionaria se você tivesse algo como
... end of block you want to keep
}, "blah1" : {
block you want removed
}, "blah2" : {
start of block you want to keep ...
}
Além disso, o [{
usa apenas o bloco pai imediato, portanto, se você tiver mais níveis de aninhamento, também não funcionará.