[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: