Re: [OT] Nuevo desafío Sed
andmarti@gmail.com wrote:
> Será posible que sea tan jodido esto del sed? Me tiene de la cabeza.
Es así de jodido. Es parte del encanto :)
> Lo que estaba tratando de hacer ahora es agregar una linea con el texto
> "NUEVO" bajo la primera que cumpla con las 2 siguientes condiciones:
> que empiece con "COMIENZO" y que no contenga "STRING_PROHIBIDO".
>
> En rigor de verdad, lo que necesito es que escriba al final de la línea que
> encontró. Seguro que con el comando s como dijo uno de los pibes el otro día,
> pero como ni siquiera pude hacer lo primero..
A ver si te entiendo. Considera el siguiente script:
------------------------------------------------
#!/bin/sed -f
# Si la linea *no* comienza con COMIENZO,
# imprime y vuelve al inicio del programa;
/^COMIENZO/!b
# (else) si la linea contiene PROHIBIDO,
# imprime y vuelve al inicio del programa;
/PROHIBIDO/b
# (else) agrega " NUEVO" al final, imprime,
# e imprime el resto del texto sin mas
# comprobaciones.
s/$/ NUEVO/
:a
n
ba
------------------------------------------------
O sin tanto verbo:
sed -e '/^COMIENZO/!b' -e '/PROHIBIDO/b' -e 's/$/ NUEVO/' \
-e ':a;n;ba'
Si aún quieres el salto de línea, cambia " NUEVO" por "\nNUEVO".
> NOTA AL MARGEN: El man y la info de sed es medio chota.
> Saludos.
La info es una referencia completa y correcta, que parece escrita para
ser útil sólo a quien ya sabe sed en primera instancia. O sea, estoy de
acuerdo contigo. Pero no me puedo imaginar cómo sería una documentación
mejor. Quizá es que sed es difícil de documentar.
Saludos.
--
César Rincón
Enlaces Tecnológicos
Guadalajara, México
Reply to: