Línea de retorno Shell

Resuelto
Hola,
Tengo un problema que estoy tratando de resolver desde el viernes sin éxito. De hecho, estoy escribiendo un shell donde debo insertar con sed una línea, luego un salto de línea y luego otra línea:
sed s/lign_remplacer/ligne1\nligne2/g archivo > archivo;
El problema es que el salto de línea no es reconocido y solo obtengo ligne1nligne2.
He duplicado el doble slash y obtengo lo mismo, cuando lo triplico, obtengo ligne1\nligne2.
Aclaro que utilizo Putty para conectarme al servidor, desafortunadamente no tengo otra opción de herramienta.
Gracias por tu ayuda.

6 respuestas

  1. Colaborador
    Hola,

    ¿Qué sistema operativo tienes en tu servidor?
    ¿Qué versión de "sed"?

    Prueba con el código ASCII:

    sed 's/lign_remplacer/ligne1\x0Aligne2/g' fichier > fichier

    Es un CERO y no una O mayúscula...

    --
    Zen my nuggets ;-)
    Haz un gesto por el medio ambiente, cierra tus ventanas y adopta un pingüino.
    0
    1. Siempre el mismo problema: me muestra ...línea1x0Alínea2...
      ¿Cómo saber la versión del servidor y del comando sed, por favor?
      Gracias
      0
      1. Colaborador
        ¿Sabes al menos si el servidor es GNU/Linux o UNIX?

        Intenta:

        lsb_release -a o cat /etc/{release,version,issue}


        Para "sed":

        sed --version
        0
    2. el comando que me diste no funcionó, intenté con el comando oslevel, y dio: 5.2.0.0.
      uname -a dio: AIX xxxxx 2 5 .....
      Para sed el comando no funcionó.
      0
      1. Colaborador
        Efectivamente en AIX "sed" es bastante caprichoso ;-((

        Intenta así:

        sed 's/lign_remplacer/ligne1\<ENTREE> ligne2/g' fichier > fichier


        <ENTREE> se ejecuta, no se toma literalmente, ¿eh? ;-))
        0
    3. ¿Podrías explicarme más sobre esta historia de entrada, por favor?
      gracias
      0
      1. Colaborador
        Después de la barra invertida, presionas Enter y continúas el resto de la sintaxis en la línea.
        0
    4. ¿Y si tengo un shell?
      0
      1. Colaborador
        You press <Enter> without the backslash before it ;-)
        0
      2. Colaborador
        Finalmente no, puede que haya dicho una tontería, tú haz lo mismo con la barra invertida y el <Entrada> ;-)
        0
    5. Eso funcionó pero añadiendo otro anti slash: \\
      ¡Muchas gracias por esta ayuda, me has salvado el día! :-)
      0