Immaginiamo di avere un testo e, individuata una parola, vogliamo che sed o awk legga (e ci restituisca in output) fino a quella parola, compresa o esclusa. O meglio, fino a quella riga in cui è compresa quella parola (sarebbe meglio dire stringa, eh).
Testo di esempio. [Poesia.txt]
La donzelletta vien dalla campagna,
In sul calar del sole,
Col suo fascio dell’erba; e reca in mano
Un mazzolin di rose e di viole,
Onde, siccome suole,
Ornare ella si appresta
Dimani, al dì di festa, il petto e il crine.
Siede con le vicine
Su la scala a filar la vecchierella
Incontro là dove si perde il giorno;
E novellando vien del suo buon tempo,
Quando ai dì della festa ella si ornava,
Ed ancor sana e snella
Solea danzar la sera intra di quei
Ch’ebbe compagni dell’età più bella.
Primo esempio.
Voglio che awk legga fino alla stringa "crine"
$ awk '{print} /crine/ {exit}' Poesia.txt
Per ottenere lo stesso risultato con sed, avremmo dovuto scrivere:
$ sed '/crine/q' Poesia.txt
Secondo esempio.
Voglio che awk legga fino alla stringa "crine", escludendo, però, la riga che la contiene.
$ awk '/crine/ {exit} {print}' Poesia.txt
Per ottenere lo stesso risultato con sed, avremmo dovuto scrivere:
$ sed '/crine/Q' Poesia.txt
Alla prossima!
Nessun commento:
Posta un commento