Le Mon, 29 Mar 2004 20:14:50 +0200, Jacques L'helgoualc'h a écrit :

> 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
Cela fonctionne,

Merci.

Le find, c'est pour une utilisation étendue par rapport à mon exemple.

i.old est un fichier temporaire automatiquement supprimé après
l'exécution ?



Répondre à