2010-09-15 17 views

Respuesta

5
sed -e '/baz[0-9]*/,$b' -e 'd' file 

Esto eliminará todas las líneas de la entrada, excepto los de la primera línea que coincide con la expresión regular (/ baz [0-9] * /) al final de la archivo ($).

4

sólo tiene que utilizar grep:

$ grep -E 'baz[0-9]*' file -A9999 

En este caso, la opción '-A' grep dice cuántas líneas para mostrar después del partido. Es un poco torpe, pero si hay un límite superior en la longitud de sus archivos de entrada, podría funcionar bien.

-1

Uso grep para buscar una palabra clave en un archivo. Yo uso el siguiente:

 
Syntax => grep pattern filename 
examlpe 
grep amet /path_to_file 
5

La respuesta aceptada imprime la línea que incluye el patrón. Si desea excluir esa línea:

sed '1,/baz[0-9]*/d' file 

Una versión más simple de la respuesta aceptada:

sed -ne '/baz[0-9]*/,$p' file 

Algunas versiones de sed no necesitan el -e excepto en ciertas circunstancias (sino que se acepta de todos modos) y algunos lo hacen. Estos ejemplos ilustran ambos tipos.

-1
ruby -ne 'print unless 1 .. /baz[0-9]/' file 
Cuestiones relacionadas