SED option -i edit in place sous AIX

Résolu
Jules -  
jaoued zahraoui Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
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

4 réponses

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