Risposte:
Grep ha le seguenti opzioni che ti permetteranno di farlo (e cose simili). Potresti dare un'occhiata alla pagina man per maggiori informazioni:
-A num Stampa num linee di contesto finale dopo ogni corrispondenza. Vedi anche le opzioni -B e -C.
-B num Stampa num line del contesto iniziale prima di ogni corrispondenza. Vedi anche le opzioni -A e -C.
-C [num] Stampa le linee num del contesto iniziale e finale che circonda ogni corrispondenza. Il valore predefinito è 2 ed equivale a -A 2 -B 2. Nota: non è possibile assegnare spazi bianchi tra l'opzione e il suo argomento.
Utilizzare l' -A
argomento per grep
specificare quante righe oltre la corrispondenza devono essere emesse.
Stampa N righe dopo aver abbinato le righe
È possibile utilizzare grep
con l' -A n
opzione per stampare N righe dopo aver abbinato le righe.
Per esempio:
$ cat mytext.txt
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line10
$ grep -wns Line5 mytext.txt -A 2
5:Line5
6-Line6
7-Line7
Altre opzioni correlate:
Stampa N righe prima di abbinare le righe
Utilizzando l' -B n
opzione è possibile stampare N linee prima di abbinare le linee.
$ grep -wns Line5 mytext.txt -B 2
3-Line3
4-Line4
5:Line5
Stampa N righe prima e dopo le righe corrispondenti
Utilizzando l' -C n
opzione è possibile stampare N linee prima e dopo le linee corrispondenti.
$ grep -wns Line5 mytext.txt -C 2
3-Line3
4-Line4
5:Line5
6-Line6
7-Line7
awk '/regex/{p=2} p > 0 {print $0; p--}' filename
- funziona, il tuo no.