Bertrand Lemaître a écrit, lundi 29 mars 2004, à 17:37 : > Le Wed, 26 Nov 2003 09:37:06 +0100, Charles Plessy a écrit : [...] > Bonjour,
bonjour. > J'ai essayé la version perl et bash, et malheureusement cela ne > fonctionne pas chez moi. > > Lorsque je laisse perl -pe, le shell ne se termine jamais. > Lorsque je ne met que perl -e, je récupère la main, mais la substitution > ne s'est pas faite dans le fichier. > > Voici mon script : > for i in $(find /var/lib/sympa/enseignant -name config -print) > do perl -e > 's:/5000000/:/6000000/:g' done for i in $(find /var/lib/sympa/enseignant -name config -print) do perl -pi.old -e 's/5000000/6000000/g' "$i" done On peut remplacer Perl par Sed (version 4) : sed -i.old '/^maxsize/s/5000000/6000000/' "$i" (si c'est seulement la ligne commençant par maxsize qu'il faut traiter ; le flag g semble alors superflu d'après l'exemple ci-dessous). > Voici ce que ramène find /var/lib/sympa/expl/enseignant -name config > -print > : /var/lib/sympa/expl/enseignant/config S'il n'y a pas d'autre config dans des sous-dossiers, find et la boucle sont inutiles. > Voici ce que ramène grep 5000000 /var/lib/sympa/expl/enseignant/config : > max_size 5000000 > Pouvez vous m'aider ? EEAA. > Merci de rien, -- Jacques L'helgoualc'h