Sed - Consejos y trucos
= [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'