← retour aux snippets

ed: éditer des fichiers façon flux (non interactif)

Automatiser des éditions complexes avec l'éditeur historique ed en mode script.

bash text #ed#editor#batch

objectif

Appliquer des modifications précises (remplacements, insertions, suppressions) en script sans dépendre de sed/awk.

code minimal

# remplacer la première occurrence de 'foo' par 'bar' et sauver
ed -s fichier.txt <<'ED'
/foo/
s//bar/
wq
ED

utilisation

# insérer une ligne après un motif
ed -s fichier.txt <<'ED'
/pattern/
+1
a
nouvelle ligne
.
wq
ED

# supprimer les lignes 10 à 20
ed -s fichier.txt <<'ED'
10,20d
wq
ED

variante(s) utile(s)

# remplacement global sur toutes les lignes avec confirmation
ed -s fichier.txt <<'ED'
g/foo/ s//bar/g
wq
ED

notes

  • -s (silent) supprime le prompt. Les commandes a/i/d/s/g couvrent 90% des besoins.
  • idéal dans des environnements minimalistes où sed/awk sont limités.