2011-09-19 3 views
0

Je suis à la recherche d'un moyen de remplacer toutes les instances d'un formulaire:Sed: utilisation trouvée chaîne comme une variable

model->variable 

avec

models[variable][index] 

où variable peut être à peu près toute combinaison de lettres et nombres, probablement définis comme [0-9a-Z] {4,12}. Il existe des centaines de variables de ce type dans le texte. J'ai besoin de connaître la forme exacte de la chaîne trouvée "variable" pour l'utiliser en remplacement. Y at-il un moyen de "se souvenir" de la chaîne et de l'utiliser plus tard? Ou toute autre méthode/logiciel qui pourrait aider dans un tel cas?

Merci d'avance.

Si vous pouviez convertir "variable" en majuscule, ce serait génial.

Répondre

3

Vous pouvez utiliser des éléments du motif à remplacer si vous les mettez à \(...\). Vous utilisez ensuite \1 pour insérer la chose capturée par le premier parent.

Une solution naïve à votre problème serait:

sed 's/model->\(.*\)/models[\1][index]/' file.txt 
Questions connexes