Re: remplacement occurence dans plusieurs fichiers
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
Reply to: