2009-04-17 10 views
2

Je suis en train d'extraire la chaîne à partir d'un fichier ayant un motif suivant dans une ligneune chaîne dans « > et</ motif

>------ </ 

Le ----- représente peut être une chaîne de longueur variable. le modèle de départ dans une ligne est > et modèle fin </.

utilisant l'expression rationnelle de VIM est la recherche de ligne de commande possible? et si oui pourrait-il être imprimé?

Ou devra écrire un script?

Je suis un nouvel utilisateur à VIM

Répondre

1

Essayez cette

%:s/.*>\(.*\)<\/.*/\1/  
6

Essayez la recherche vim suivante:

/">\(.*\)<\/ 

Cela doit correspondre à une ligne avec ce modèle. Il va également stocker tout le texte qu'il saisit entre vos marqueurs de début et de fin dans \1 que vous pouvez utiliser si vous voulez faire une recherche et remplacer dans vim. Par exemple:

:%s/">\(.*\)<\//Log message: \1/ 

Si vous souhaitez utiliser grep dans la ligne de commande pour rechercher cette chaîne vous pouvez utiliser:

$ egrep "\">.*<\/" foo.txt 

Ce imprimera seulement les lignes de correspondance de foo.txt. Si vous souhaitez les envoyer à un nouvel essai de fichier:

$ egrep "\">.*<\/" foo.txt > new.txt 
+0

J'ai besoin du texte mis en évidence que de rester et de repos toutes les données doivent être effacés ou tout autre texte SAISIR pourrait-il être redirigé à un autre fichier? – kadeshpa

+0

Probablement encore une solution non-gourmande? –

+0

Pourquoi le premier double-citation? – rampion

Questions connexes