Aller au contenu

Aide-mémoire sed

Utilisation de base

sed 'commande' fichier
echo "texte" | sed 'commande'
  • Par défaut, sed lit chaque ligne, applique les commandes, et affiche le résultat.

Remplacement (s///)

# Remplacer la première occurrence de "foo" par "bar"
sed 's/foo/bar/' fichier

# Remplacer toutes les occurrences de "foo" par "bar"
sed 's/foo/bar/g' fichier

# Remplacer avec insensibilité à la casse
sed 's/foo/bar/Ig' fichier

# Remplacer uniquement la 2ème occurrence dans une ligne
sed 's/foo/bar/2' fichier

# Remplacer uniquement dans certaines lignes (ex. lignes 10 à 20)
sed '10,20s/foo/bar/g' fichier

Suppression de lignes

# Supprimer la ligne 5
sed '5d' fichier

# Supprimer les lignes 5 à 10
sed '5,10d' fichier

# Supprimer toutes les lignes contenant "mot"
sed '/mot/d' fichier

Affichage de lignes

# Afficher uniquement la ligne 3
sed -n '3p' fichier

# Afficher les lignes 10 à 20
sed -n '10,20p' fichier

# Afficher les lignes contenant "mot"
sed -n '/mot/p' fichier

Insertion & Ajout

# Insérer "Texte" avant la ligne 3
sed '3iTexte' fichier

# Ajouter "Texte" après la ligne 3
sed '3aTexte' fichier

Substitution avec capture (regex)

# Échanger deux mots (foo bar → bar foo)
sed 's/\(foo\) \(bar\)/\2 \1/' fichier

# Entourer un mot par des crochets
sed 's/mot/[&]/g' fichier

Édition en place

⚠️ Attention : -i modifie directement le fichier.

# Remplacement en place
sed -i 's/foo/bar/g' fichier

# Avec sauvegarde
sed -i.bak 's/foo/bar/g' fichier

Exemples pratiques

# Supprimer les espaces en début de ligne
sed 's/^[ \t]*//' fichier

# Supprimer les espaces en fin de ligne
sed 's/[ \t]*$//' fichier

# Supprimer les lignes vides
sed '/^$/d' fichier

# Ajouter un préfixe à chaque ligne
sed 's/^/PREFIX_/' fichier