J'ai un petit script qui Vim fait une recherche sur plusieurs lignes et remplacer:script Vim avec exec trouver
vim -c 's/^ *<hi a=\"26\">\nHello/<td height=\"26\">\r<\/table>\r<bla \/>' \
-c 'w!' -c 'q' test.html
qui fonctionne. Cependant, quand je mets que dans un exec de trouver pour ce faire récursive dans le répertoire:
find . -iname 'test.html' -exec \
vim -c 's/^ *<hi a=\"26\">\nHello/<td height=\"26\">\r<\/table>\r<bla \/>' \
-c 'w!' -c 'q' \
{} \;
test.html reste inchangé, et Vim me donne cette erreur:
Pattern not found:
^*<hi a=\"26\">\nHello
in ./test.html
C'est vraiment étrange parce que c'est la regex correcte, et je peux la rechercher manuellement dans Vim avec succès.
Pouvez-vous voir des erreurs évidentes avec ma syntaxe de recherche?
Lorsque vous exécutez 'find' avec juste un' '-print' au lieu de -exec', fait il liste test.html correctement? – bstpierre
Oui, ça liste test.html quand je fais simplement -print. Il ouvre avec succès le fichier avec Vim quand je fais -exec. – nnyby