← retour aux snippets

sed: extraire un bloc entre deux marqueurs

Imprimer uniquement les lignes comprises entre deux motifs, inclus ou exclus.

bash text #sed#extract#range

objectif

Isoler un segment d’un fichier log/config sans écrire un script.

code minimal

# inclusif
sed -n '/^BEGIN SECTION/,/^END SECTION/p' fichier.txt

utilisation

# exclusif (sans les marqueurs)
sed -n '/^BEGIN SECTION/,/^END SECTION/{/^BEGIN SECTION/b;/^END SECTION/b;p}' fichier.txt

variante(s) utile(s)

# extraire n lignes après un motif
grep -n '^Erreur:' app.log | head -1 | cut -d: -f1 | xargs -I{} sed -n '{} , {}+10p' app.log

notes

  • -n évite l’impression par défaut; p affiche la plage voulue.
  • pour des motifs complexes, privilégiez awk.