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à.