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.
# 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.