Retour ligne Shell

Résolu
Bonjour,
J'ai un problème que j'essaie de résoudre depuis vendredi en vain. En fait j'écris un shell, ou je dois insérer avec sed une ligne puis un retour à la ligne puis une autre ligne:
sed s/lign_remplacer/ligne1\nligne2/g fichier > fichier;
Le problème c'est que le retour à la ligne n'est pas reconnu, et j'obtiens juste ligne1nligne2.
j'ai doublé le double slash, j'obtiens la meme chose, quand je le tripel, j'obtiens ligne1\nligne2.
Je précise que j'utilise Putty pour me connecter sur le serveur, je n'ai pas le choix de l'outil malheuresuement.
Merci pour votre aide.

6 réponses

  1. Contributeur
    Salut,

    Quel système d'exploitation sur ton serveur ?
    Quelle version de "sed" ?

    Essaie avec le code ASCII :

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

    C'est un ZERO et non pas un O majuscule...
    1. Toujours le meme problème: il m'affiche ...ligne1x0Aligne2...
      Comment savoir la version du serveur et de la commande sed stp?
      Merci
      1. Contributeur
        Pour le serveur sais-tu au moins si c'est du GNU/Linux ou de l'UNIX ?

        Essaie :

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


        Pour "sed" :

        sed --version
    2. la commande que vous m'avez donné n'a pas marché, j'ai essayé la commande oslevel, ça a donné: 5.2.0.0.
      uname -a a donné : AIX xxxxx 2 5 .....
      POur sed la commande n'a pas marché.
      1. Contributeur
        Effectivement sur AIX "sed" est plutôt capricieux ;-((

        Essaie comme ça :

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


        <ENTREE> est à exécuter pas à entrée littéralement, hein ? ;-))
    3. Pourriez vous m'expliquez plus cette histoire d'entrée svp?
      merci
      1. Contributeur
        Après l'anti slash tu appuies sur Entrée et tu continues le reste de la syntaxe à la ligne.
    4. Ei si j'ai un shell?
      1. Contributeur
        Tu tapes <Entrée> sans l'anti-slash avant ;-)
      2. Contributeur
        Enfin non, j'ai peut être dit une c**nerie, tu fais de même avec l'anti-slash et le <Entrée> ;-)
    5. ça marché mais en rajoutant un autre anti slash: \\
      Merci beaucoup pour cette aide, tu m'as sauvé ma journée! :-)