Sed - Consejos y trucos

Sed, o Stream Editor como se conoce comúnmente, se usa principalmente para analizar texto y transformar cualquier texto dentro de un script. Esta característica de Sed se usa en los scripts de Shell para generar códigos flexibles y dinámicos. Conocer los consejos y trucos comunes puede ayudar a los usuarios a optimizar sus códigos en gran medida. Uno puede hacer transformaciones personalizadas de texto, como sustituir un texto por otro en función del número de ocurrencias, mostrar líneas específicas y eliminar espacios o espacios en blanco. También se pueden usar consejos y trucos para elementos diversos, como unir varias líneas o reemplazar caracteres especiales de líneas específicas.

= [Sed] Consejos y trucos

Sustitución

Sustituye "foo" por "barra" en cada línea

Solo la 1ª ocurrencia

sed 's / foo / bar /'

Solo para el 3er caso

sed 's / foo / bar / 3'

Todas las ocurrencias

sed 's / foo / bar / g'

Justo antes de la última aparición.

sed 's / \ (. * \) foo \ (. * foo \) / \ 1bar \ 2 /'

Solo el ultimo caso

sed 's / \ (. * \) foo / \ 1bar /'

Sustituya "foo" por "barra" solo líneas que contengan "plop"

sed '/ plop / s / foo / bar / g'

Sustituye "foo" por "barra" excepto las líneas que contienen "plop"

sed '/ plop /! s / foo / bar / g '

Reemplace "Foo" o "foo" con "barra" en cada línea

sed 's / [Ff] oo / bar / g'

Reemplace "azul" o "blanco" o "rojo" con "verde"

sed / azul \ | en blanco \ | rojo / verde / g '

Monitor

La 1ra línea (cabeza -1)

sed q

Las primeras 5 líneas (cabeza -5)

sed'5 q '

sed'1, 5! d '

La última línea (cola -1)

sed-n '$ p'

sed '$! d

Las últimas 5 líneas (cola -5)

sed-e: ae '$ q, N, 6, $ D; licenciado en Letras'

Las 2 ultimas lineas (cola -2)

sed '$! NORTE; PS RE'

Sólo las líneas coinciden con una razón o una expresión regular

sed-n '/ patrón / p'

sed '/ regexp /! re'

Sólo las líneas que coinciden no son una razón o una expresión regular

sed-n '/ patrón /! pag'

sed '/ regexp / d'

La línea que precede a un patrón o una expresión regular

sed-n '/ patrón / (g; 1! p;) h'

La línea que sigue un patrón o una expresión regular.

sed-n '/ regexp / (n, p;)'

retirar

=== Espacio y pestaña ==

Eliminando espacios y pestañas

Al principio de la línea.

sed 's / ^ [\ t] * / /

sed 's / ^ \ s * / /' # Usando el parámetro "\ s"

Al final de la linea

sed 's / [\ t] * $ //'

Al principio y al final de la línea.

sed 's / ^ [\ t] * //; s / [\ t] * $ // '

Linea en blanco

Eliminar líneas en blanco

Todas las lineas vacias

sed '/ ^ $ / de

sed '/./! de

Sólo los de arriba.

sed '/./, $! de

sed-nr '/./, $ /(.*)/ s \ 1 / p' # gracias Adrien

Solo los de fin

sed-e: ae '/ ^ \ n * $ / ($ d N; ba'-e') '

Intervalos regulares

Eliminar una línea a intervalos regulares

Todos los pares de líneas

sed'1 ~ 2d '

Todas las lineas impares

sed'2 ~ 2d '

Cada n líneas de la línea n

sed'3 ~ 2d '# 2 Todas las líneas de la línea 3

Diverso

Unir lineas

Adjuntar las líneas 2 por 2

sed '$! N s / \ n / / '

Une las 3 líneas por 3

sed '$! N s / \ n //; $! N s / \ n / /; '

Si una línea termina con una barra invertida (\), agregue la siguiente línea y reemplace el final de la línea (\ n) por un espacio

sed-e: ae '/ \ \ $ / N s / \ \ \ n n / /; ejército de reserva'

Si una línea comienza con un signo igual (=), agréguela a la línea anterior y reemplace el signo igual (=) con un espacio

sed-e: ae '$! N s / \ n = / /; ta'-e 'P, D'

Artículo Anterior Artículo Siguiente

Los Mejores Consejos