Bonjour,
je cherche à utiliser sed pour changer l'ordre de mes paramètres de fonction
Exemple: foo($bar,$plop,$toto)
doit devenir: foo($toto,$bar,$plop)
Mon idée aurait été de faire
sed 's/foo(\(.*\),\(.*\),\(.*\))/foo($3,$1,$2)/'
Sed détecte bien le patern mais je me retrouve bel et bien avec foo($3,$1,$2) et non pas foo($toto,$bar,$plop)
Comment faire pour que sed remplisse la valeur de chaque $ ??
Merci d'avance
Uld
PS: je ne cherche à faire ca qu'avec sed, il se peut que d'autre solution plus simple plus esthétiques existent, je ne doute pas de vous, mais seules les solutions basées sur sed m'interressent.
Forum Programmation.shell Changer l'ordre de mes paramètres de fonction
17
mar.
2009
# Bah oui
Posté par ✅ ffx . Évalué à 3.
[^] # Re: Bah oui
Posté par Uld (site web personnel) . Évalué à 1.
Merci ffx
# Le dernier devient le premier...
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 2.
~ $ echo 'foo(tata,titi,toto,tutu)--pasfoo(1,2,3)--foo(pif,paf)' | \
sed -e 's/\<foo(\([^)]*\),\([^,)]*\))/foo(\2,\1)/g'
foo(tutu,tata,titi,toto)--pasfoo(1,2,3)--foo(paf,pif)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.