← retour aux snippets

ex: utiliser vi en mode batch pour éditer

Lancer ex pour exécuter des commandes vi (substitutions, écritures) sans interface.

bash text #ex#vi#batch

objectif

Bénéficier de la puissance des substitutions vi en scripts, sans ouvrir l’interface.

code minimal

# substituer globalement et sauvegarder
ex -s +'%%s/foo/bar/ge | x' -cwq -- fichier.txt

utilisation

# insérer une ligne en tête et en fin
ex -s +'%g/^/normal! iHEADER\r' +'%$put ="\nFOOTER"' -cwq -- fichier.txt

variante(s) utile(s)

# mode portable POSIX ex (vi), simple substitution
ex -s +'1,$s/foo/bar/g' -cwq -- fichier.txt

notes

  • -s silencieux; -c exécute des commandes; wq écrit et quitte.
  • utile sur systèmes où vi/ex est présent par défaut.