<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
Merci pour cette suggestion c'est effectivement la solution si on ne peut pas faire autrement mais cela implique de modifier les scripts et j'en ai beaucoup.<BR>
<BR>
Si j'ai bien compris LC_NUMERIC permet de d&#233;finir le format num&#233;rique et le s&#233;parateur de d&#233;cimal. Est il normal que la fonction sleep ne prenne pas en compte cette locale ?<BR>
<BR>
Merci<BR>
<BR>
Patrick <BR>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<BR>
</TD>
</TR>
</TABLE>
<BR>
Le mardi 08 septembre 2009 &#224; 22:56 +0200, MulX (Aymeric) a &#233;crit&nbsp;:
<BLOCKQUOTE TYPE=CITE>
<PRE>
patrick a &#233;crit :
&gt; Bonjour,
&gt;
&gt; Je cherche un moyen de changer le s&#233;parateur d&#233;cimal dans
&gt; l'utilisation de la fonction sleep.
&gt; Par d&#233;faut si on veut faire un sleep de 0,1 seconde il faut taper
&gt; &quot;sleep 0.1&quot;, je fais une migration de script batch depuis un debian
&gt; Woody vers un Ubuntu 9.4 et sous Debian Woody j'utilisais une virgule
&gt; comme s&#233;parateur d&#233;cimal apr&#232;s avoir fix&#233; la variable LC_NUMERIC=fr_FR.
&gt; Avec Ubuntu 9.4 je n'ai pas r&#233;ussi &#224; remplacer le point par la virgule
&gt; pour l'utilisation de la fonction sleep.
&gt;
&gt; La commande locale donne :
&gt; LANG=fr_FR.UTF-8
&gt; LC_CTYPE=&quot;fr_FR.UTF-8&quot;
&gt; LC_NUMERIC=&quot;fr_FR.UTF-8&quot;
&gt; LC_TIME=&quot;fr_FR.UTF-8&quot;
&gt; LC_COLLATE=&quot;fr_FR.UTF-8&quot;
&gt; LC_MONETARY=&quot;fr_FR.UTF-8&quot;
&gt; LC_MESSAGES=&quot;fr_FR.UTF-8&quot;
&gt; LC_PAPER=&quot;fr_FR.UTF-8&quot;
&gt; LC_NAME=&quot;fr_FR.UTF-8&quot;
&gt; LC_ADDRESS=&quot;fr_FR.UTF-8&quot;
&gt; LC_TELEPHONE=&quot;fr_FR.UTF-8&quot;
&gt; LC_MEASUREMENT=&quot;fr_FR.UTF-8&quot;
&gt; LC_IDENTIFICATION=&quot;fr_FR.UTF-8&quot;
&gt; LC_ALL=
&gt;
&gt; J'ai cherch&#233; un peu partout sans trouver de solution, avez vous une
&gt; piste ?
&gt;
&gt; Merci
&gt;
&gt; Patrick 
(j'ai quelques probl&#232;mes de messagerie :/ )

A priori mon premier message est parti avant que j'ai eu le temps de le
finir
Voici donc l'expression r&#233;guli&#232;re :

sed -e '/^sleep *\,*/ s \([0-9]\)\?,\([0-9]\) \1.\2 '


Voici un exemple :
echo &quot;foo.bar&quot;
sleep 1,2
sleep 11,25
sleep 2,4s
sleep .2
sleep ,6
echo sleep 1,2
echo &quot;bar,foo&quot;

Apr&#232;s execution de la commande sed :

echo &quot;foo.bar&quot;
sleep 1.2
sleep 11.25
sleep 2.4s
sleep .2
sleep .6
echo sleep 1,2
echo &quot;bar,foo&quot;


Remarque j'ai utilis&#233; l'espace comme s&#233;parateur de la commande sed pour
y voir plus clair.
Expliqu&#233; simplement on selectionne pour les lignes qui commence par
sleep, tout les chiffres avant la ',' et tout ce qui est apr&#232;s.
Chaque morceaux est m&#233;moris&#233; puis on remet le premier.second

En &#233;crivant je me dit qu'il y a peut &#234;tre plus simple, remplacer la ,
par un . pour les lignes qui commence par sleep .... (sed -e '/^sleep
*,*/ s , . g')

Enfin bref &#231;a m'a fait r&#233;viser les expressions r&#233;guli&#232;res ^^

Si tu souhaite l'utiliser un ensemble de fichier (qui on va supposer
finissent par .sh)

for fichier  in *.sh
do
sed -e '/^sleep *\,*/ s \([0-9]\)\?,\([0-9]\) \1.\2 ' -i &quot;$fichier&quot;
done

Voil&#224;.

-- 
MulX, alias os2mule. (IRL: Aymeric)
WWW : <A HREF="http://www.aplu.fr">http://www.aplu.fr</A> ; Jabber : <A HREF="mailto:mulx@jabber.fr">mulx@jabber.fr</A>
Merci d'eviter le &quot;Top posting&quot; !

Preuve est faite que visage d&#233;vot et pieuses actions nous servent &#224; enrober de sucre le diable lui m&#234;me.


</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>