(Courriels de diversion: <resignions@lubrifiions-aurions.com> <admettra@enterinee-situeras.com> <decrocherez@complote-retrousses.com> <alternant@trancherez-signataires.com> <lustrerai@pavoisons-croiseras.com> <connectee@redingotes-decernais.com> <discredits@corniches-mesquineries.com> <demoulent@floue-pretendrais.com> <regionaliserait@verse-recevront.com> <massacrerais@crâneuse-repeterez.com> )
On Wed, 24 Feb 1999, Jerome Gasperi wrote:
>
> Salut,
>
> J'ai un autre probleme avec perl (promis apres je vous embete plus).
> Mon probleme est le suivant. Je veux faire un equivalent de
> cat file | grep "toto" | awk '{print $1}'
>
> Pour cela je fais un truc du genre:
>
> if (/toto//){@spltfld=split(" ",$_);}
>
Remarque : tu peux mettre simplement split (" ")
> Le probleme c'est que si dans le fichier j'ai :
>
> toto va a la plage
>
> alors $spltfld[0] me renvois toto, ce qui est normal
>
> Par contre, si il y a un espace en debut de phrase
>
> toto va a la plage
>
> C'est la catastrophe parce-que $spltfld[0] ne vaut plus "toto" mais
> contient visiblement le debut de la ligne ("^" ????)
>
C'est bizarre, pour moi avec perl version 5.004_04 si je fait:
perl -e '$_=" toto champ2"; split(/" "/); print "0=$_[0]
1=$_[1]\n"'
J'obtiens "0= toto 1=champ2".
Sinon, pour regler ton probleme, tu peux peut-etre intercaler :
s/^[ \t]*// pout virer les blancs du debut.
| `""'
| Xavier Montagutelli 0--0
| ---------oOOo---()---oOOo----------
| INSA Toulouse - Dpt de Mathematiques Tel: +33 5 61 55 93 38 (HB)
| Complexe scientifique de Rangueil Fax: +33 5 61 55 93 20
| 31077 Toulouse Cedex Mel: montagut@gmm.insa-tlse.fr
_______________________________________________________________________
Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/