SED option -i edit in place sous AIX [Résolu/Fermé]

Signaler
-
jaoued zahraoui
Messages postés
13
Date d'inscription
dimanche 29 février 2004
Statut
Membre
Dernière intervention
20 novembre 2015
-
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

6 réponses

Messages postés
17963
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 décembre 2019
4527
hello
ceci doit fonctionner
echo '1,$s/toto/tata/g\nw\nq' | ed -s toto.txt
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62804 internautes nous ont dit merci ce mois-ci

Messages postés
43481
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4635
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
;-))
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.
Messages postés
43481
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4635
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 !?
Messages postés
13
Date d'inscription
dimanche 29 février 2004
Statut
Membre
Dernière intervention
20 novembre 2015

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