← retour aux snippets

ed: éditer un fichier sans éditeur interactif

Utiliser ed en mode script (-s) pour modifier un fichier de façon reproductible et atomique.

bash text #ed#edit#script

objectif

Automatiser une modification précise (recherche/remplacement, insertion) sans dépendre d’un éditeur interactif.

code minimal

# remplacer la première occurrence de "foo" par "bar" dans un fichier
ed -s config.ini <<'ED'
g/foo/s//bar/
wq
ED

utilisation

# insérer une ligne après une section
ed -s app.conf <<'ED'
/^\[server\]/
+1
a
max_clients=200
.
wq
ED

# supprimer toutes les lignes vides
ed -s file.txt <<'ED'
g/^$/d
wq
ED

variante(s) utile(s)

# modifier en place mais écrire d'abord dans un temp et mv atomique
tmp="$(mktemp)"; cp config.ini "$tmp"
ed -s "$tmp" <<'ED'
g/enable=false/s//enable=true/
wq
ED
mv -f "$tmp" config.ini

notes

  • ed -s est silencieux; chaque commande se termine par Enter, les blocs par un point seul (.).
  • idéal en environnements minimalistes où sed devient trop complexe.