tipos nomina matriculas fisiologia definicion callejeros bogota sed

nomina - líneas de eliminación de sed que no contienen una cadena específica



sed linux (3)

Desea imprimir solo aquellas líneas que coincidan con ''texto'' o ''blah'' (o ambos), donde la distinción entre ''y'' y ''o'' es bastante crucial.

sed -n -e ''/text/{p;n;}'' -e ''/blah/{p;n;}'' your_data_file

El -n significa que no se imprime por defecto. El primer patrón busca ''texto'', lo imprime si coincide y salta a la siguiente línea; el segundo patrón hace lo mismo para ''blah''. Si la ''n'' no estaba allí, una línea que contenía ''texto y bla'' se imprimiría dos veces. Aunque podría haber usado simplemente -e ''/blah/p'' , la simetría es mejor, especialmente si necesita extender la lista de palabras coincidentes.

Si su versión de sed admite expresiones regulares extendidas (por ejemplo, GND sed hace, con -r ), entonces puede simplificar eso para:

sed -r -n -e ''/text|blah/p'' your_data_file

Soy nuevo en sed y tengo la siguiente pregunta. En este ejemplo:

some text here blah blah 123 another new line some other text as well another line

Quiero eliminar todas las líneas, excepto las que contienen cadena ''texto'' o cadena ''blah'', por lo que mi archivo de salida se ve así:

some text here blah blah 123 some other text as well

¿Alguna pista de cómo se puede hacer esto usando sed ?


Esto podría funcionar para usted:

sed ''/text/|blah/!d'' file some text here blah blah 123 some other text as well


Simplemente podrías hacerlo a través de awk,

$ awk ''/blah|text/'' file some text here blah blah 123 some other text as well