SED option -i edit in place sous AIX

Résolu
Bonjour à tous,

Je n'ai pas trouvé dans le man sed, l'équivalent aix à l'option sed -i de linux

Est-ce qu'il existe un équivalent sous Aix (v3.5) à la commande sed ci-dessous ? (fonctionne sous Linux)

sed -i 's/test/modif/g' test.txt

La commande ci-dessous sous linux fonctionne également :
ed -s toto.txt <<< $',s/toto/tata/g\nw'

Ma solution palliative sous AIX pour l'instant (trouvé sur ce forum ...)
fic=$(cat toto.txt);echo "$fic" | sed 's/toto/tata/g' > toto.txt

je n'ai pas très envie de m'orienter vers une redirection vers un fichier temporaire avant de réécraser le fichier ...

Doc AIX

Merci d'avance
Configuration: AIX V3.5

4 réponses

  1. Contributeur
    hello
    ceci doit fonctionner
    echo '1,$s/toto/tata/g\nw\nq' | ed -s toto.txt
    3
    1. Modérateur
      Oups je suis allé un peu vite en pensant que la solution "ed" avec un "here-string" marchait sur AIX ;-[

      Une autre solution à la "dubcek" ;-))
      ed -s toto.txt <<EOF
      1,$s/toto/tata/g
      w
      EOF
      ;-))
      1
      1. Merci beaucoup, solution parfaite pour moi.

        Je regrette de ne pas avoir trouver l'option -i (edit in place) pour le sed sous aix mais cette solution me convient parfaitement.

        Encore merci.
        0
    2. you can use perl to do it :

      perl -p -i.bak -e 's/old/new/g' test.txt


      is going to create a .bak file.

      or without .bak file :
      perl -pi -e  's/old/new/g' test.txt
      1
      1. Modérateur
        Salut,

        Ben à part les 2 exemples que tu cites, je ne vois pas ce que tu peux espérer d'autres ;-\

        En plus les 2 solutions ne passent pas par un fichier temporaire !?
        0