SED option -i edit in place sous AIX

Résolu
Jules -  
jaoued zahraoui Messages postés 14 Statut Membre -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    ceci doit fonctionner
    echo '1,$s/toto/tata/g\nw\nq' | ed -s toto.txt
    3
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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. Jules
       
      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
  3. jaoued zahraoui Messages postés 14 Statut Membre 1
     
    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
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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