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 -sest silencieux; chaque commande se termine par Enter, les blocs par un point seul (.).- idéal en environnements minimalistes où sed devient trop complexe.