Pattern multiriga

http://unix.stackexchange.com/questions/112132/how-can-i-grep-patterns-across-multiple-lines

sed -n '/capo/{:start /coda/!{N;b start};/una regex/p}' mio_file
  • -n è l’ equivalente di –quiet, –silent : sopprime la scrittura automatica del “pattern space”
  • /capo/{} cerca capo ed esegue le parentesi graffe. Sostituire capo con l’ inizio del pattern cercato.
  • :start è un’ etichetta che serve per continuare il loop finchè non si trova la fine della regex.
  • /coda/!{} esegue le parentesi graffe finchè non trova la riga che contiene coda. Sostituire coda con la fine del pattern cercato.
  • N appende la riga al buffer attivo (il pattern space di sed).
  • b start salta incondizionatamente all’ etichetta start, cioè permette di eseguire la precedente istruzione per tutte le righe che non contengono coda.
  • /una regex/p stampa il pattern cercato su più righe.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...