(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/