Bonjour,
Dans une série de scripts PHP, j'aimerais remplacer des expressions de la forme
parCode:$response['var']
Comment le faire en utilisant sed ?Code:$var
Version imprimable
Bonjour,
Dans une série de scripts PHP, j'aimerais remplacer des expressions de la forme
parCode:$response['var']
Comment le faire en utilisant sed ?Code:$var
quelquechose du genre
sed -e 's/$response['var']/$var/g' fichier.php (sed -e 's/avant/après/g' file)
je n ai rien sous la main pour tester (nottament s'il y a des caractères a protéger dans la ligne)
Vous pouvez utiliser un script de ce type :
A noter les 3 utilisations du backslash dans la commande sed :Code:
1
2
3
4
5
6 for PHP in *.php do sed "s/\$response\['\([a-zA-Z0-9_]*\)'\]/\$\1/g" < $PHP > $PHP.new mv $PHP.new $PHP done
- devant le $ : pour neutraliser le $ au niveau du shell
- devant le [ : pour neutraliser le [ au niveau sed
- devant ( et ) : pour indiquer un groupe de capture
avec l'option -i, sed effectue les modifications in-situ.ira modifier $response['var'] en $var dans chacun des fichiersCode:sed -i 's/$response\[.\(var\).]/$\1/' abricot.php kiwi.php pomme.php
Merci. Ca me fait gagner un temps fou dans mes développements... :)