Yo uso esto
cat foo.txt | sed '/bar/d'
para eliminar líneas que contienen la cadena bar
en el archivo.
Sin embargo, me gustaría eliminar esas líneas y la línea directamente después . Preferiblemente en sed
, awk
u otra herramienta que esté disponible en MinGW32.
Es una especie de inversión de lo que puedo obtener en grep
con -A
y -B
para imprimir líneas coincidentes, así como líneas antes/después de la línea coincidente.
¿Hay alguna manera fácil de lograrlo?
Respuesta aceptada:
Si tiene GNU sed (por lo tanto, Linux o Cygwin no integrados):
sed '/bar/,+1 d'
Si tienes bar
en dos líneas consecutivas, esto eliminará la segunda línea sin analizarla. Por ejemplo, si tiene un archivo de 3 líneas bar
/bar
/foo
, el foo
la línea permanecerá.