procura e substitui números no vim

1

Eu tenho um arquivo de despejo sql que inclui entradas como esta:

INSERT INTO "widgets" VALUES(152,'12477','[email protected]','smtp','Jerry Jo',0);
INSERT INTO "widgets" VALUES(153,'12477','36542','sip','Jerry Jo',0);
INSERT INTO "widgets" VALUES(158,'92865','[email protected]','smtp','Jane Jo',0);

Eu quero pesquisar e substituir "VALUES (XXX", por "VALUES (DEFAULT)" O número que atualmente segue os valores das palavras pode ter até 5 dígitos.

Até agora, tenho andado a brincar com os seguintes comandos, semelhantes a:

 :%s/\<(VALUES(\d+\>,/VALUES(DEFAULT,/g

Mas não consigo acertar. Qualquer sugestão seria apreciada.

    
por Happydevdays 08.02.2017 / 20:50

1 resposta

4

Use o sinalizador muito mágico \v para tornar o regex mais parecido com perl e menos com vim (o que exige que o ( seja salvo, mas no lado + \d+ matches):

:%s/\vVALUES\(\d+/VALUES(DEFAULT
    
por 08.02.2017 / 21:07