objectif
Faire des recherches qui franchissent les fins de lignes (ex: blocs JSON/HTML).
code minimal
tr '\n' '\0' < input.txt | grep -z -o 'BEGIN.*END' | tr '\0' '\n'
utilisation
# avec PCRE (-P) si disponible
tr '\n' '\0' < input.txt | grep -zPo 'BEGIN[\s\S]*?END' | tr '\0' '\n'
variante(s) utile(s)
# sur plusieurs fichiers
find . -type f -name '*.html' -print0 | xargs -0 grep -zPo 'foo[\s\S]*?bar' | tr '\0' '\n'
notes
-ztraite NUL comme séparateur, permettant des motifs multi-lignes.- soyez prudent sur les volumes (peut charger de gros blocs).