Io uso questo
cat foo.txt | sed '/bar/d'
per rimuovere le righe contenenti la stringa bar
nel file.
Vorrei tuttavia rimuovere quelle righe e la riga subito dopo . Preferibilmente in sed
, awk
o altro strumento disponibile in MinGW32.
È una specie di rovescio di quello che posso ottenere in grep
con -A
e -B
per stampare le righe corrispondenti così come le righe prima/dopo la riga abbinata.
C'è un modo semplice per ottenerlo?
Risposta accettata:
Se hai GNU sed (quindi Linux o Cygwin non embedded):
sed '/bar/,+1 d'
Se hai bar
su due righe consecutive, questo cancellerà la seconda riga senza analizzarla. Ad esempio, se hai un file di 3 righe bar
/bar
/foo
, il foo
la linea rimarrà.