209 votes

Comment supprimer toutes les lignes qui ne contiennent PAS un certain mot dans Vim ?

Dans vim, je peux supprimer toutes les lignes qui contiennent le mot "prix" avec ceci

:g /price/d

Comment puis-je supprimer toutes les lignes qui ne contiennent PAS le mot "prix" ?

2 votes

Cette question peut-elle être transférée vers vi.stackexchange.com ? J'ai essayé de le signaler pour la migration mais je n'ai pas réussi à le comprendre.

1 votes

@MuMind C'est le sujet ici, alors pas besoin de migrer . " Ne migrez pas pour le plaisir de migrer. Nous ne migrons les questions que parce qu'elles sont hors sujet sur le site d'origine . Il est parfaitement possible qu'une question soit sur le sujet sur plusieurs sites, mais ce n'est pas une raison pour la migrer ailleurs, à moins que le PO ne le demande." De plus, seuls les employés de SE peuvent migrer après 60 jours et il est très rare qu'ils le fassent (même les modérateurs ne peuvent pas migrer une ancienne question).

281voto

Owain Hunt Points 1119

Vous pouvez utiliser

:g!/price/d

pour supprimer toutes les lignes qui ne contiennent pas "prix".

Comme répondu ci-dessous, g! est un alias de v . cela équivaut à

:v/price/d

3 votes

Je savais que ce serait facile...

51 votes

:g! est également connu sous le nom de :v (semblable à grep -v ).

3 votes

Que fait le % faire ?

45voto

MOHRE Points 541

Vous pouvez également utiliser :

:v/price/d

pour supprimer des lignes.

2 votes

Fwiw -- On dirait que g est pour "global" et v pour "inverse". (si vous croyez ce que vous lisez sur vim.famdom).

0 votes

help :v dans vim le confirme

12voto

%!grep "price"

est une autre option qui peut être considérablement plus rapide que :v pour les gros fichiers.

Testé sur Vim 7.4, Ubuntu 14.04, fichier journal de 1M de lignes.

Les lignes qui contiennent le mot : https://stackoverflow.com/questions/1725265/how-can-i-delete-all-lines-that-do-not-begin-with-certain-characters/42714334#42714334

1 votes

Super rapide et une solution merveilleuse

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X