0
votes

Comment supprimer des caractères spécifiques dans VI ou VIM Editor

J'ai du texte dans VI:

NC_004718
NC_045512
NC_004718
NC_045512
NC_004718

vim

0 commentaires

3 Réponses :


3
votes

Par exemple,

:g/NC_\d\+/normal! ygnV]p
  • : g / regex / code> pour correspondre aux lignes li>
  • normal! code> pour exécuter les commandes de mode normales li>
  • YGN code> pour yank le texte précédemment correspondant par : g code> li>
  • v code> pour sélectionner la ligne entière li>
  • ] p code> ou p code> pour remplacer la ligne avec le match li> ul> p>


1 commentaires

J'ai testé cela avec l'exemple de texte - et il a supprimé tout le texte.



2
votes

Je recommanderais d'utiliser une substitution avec une expression régulière pour correspondre à la chaîne entière et capturer ce que vous souhaitez conserver entre parenthèses. De cette façon, vous pouvez ensuite remplacer la chaîne entière avec juste la correspondance.

:%s/^|\([^|]\+\)|.\+/\1/


0 commentaires

1
votes

Si vous n'avez que des lignes comme celles que vous avez montrées, essayez:

 :%norm xf|D


0 commentaires