En sed
, ¿es posible omitir las primeras n líneas al aplicar una expresión regular? Actualmente estoy usando el siguiente:¿Omitiendo las primeras n líneas cuando usas regex con sed?
cat test | sed '/^Name/d;/^----------/1;/^(/d;/^$/d'
en el siguiente archivo:
Name
John
Albert
Mora
Name
Tommy
Tammy
En un pase, quiero utilizar algunas expresiones regulares (uno de los cuales consiste en eliminar la línea que contiene Name
pero quiero para omitir la primera línea en este caso) para obtener la siguiente:
Name
John
Albert
Mora
Tommy
Tammy
Debido a que el archivo es enorme, no quiero hacer varias pasadas por lo que cualquier enfoques de un solo paso sería grande.
¿Me puede mostrar cómo utilizar la sintaxis con delete en lugar de sustituir? Básicamente, cuando hago algo como esto: 'sed '2, $/^ Name/d'' el comando falla con el error: 'sed: -e expresión # 1, char 4: comando desconocido:' /' ' – Legend
+ 1 Lo descubrí :) Gracias por indicarme la dirección correcta. – Legend
'2, $' significa desde la línea 2 hasta el final del archivo. el artículo directamente después de $ es una operación. Para estos ejemplos, ya sea 's/search/replace' o' {/^string-to-delete/d} ' – Excalibur