Je crois qu'il existe des versions de bash pour plein de plateformes
Unix (je sais pour Solaris, par exemple)
Rosaire

Stephane a �crit :
> 
> Clocard wrote:
> >
> > ...
> > > >
> > > > set -- `sed -ne 10p`
> > > > resultat=$4
> > > >
> > > > car set et l'affectation sont built-in et donc ne coutent rien.
> > > >
> > > >                 XB.
> > > >
> >
> > > Ton intention est louable, mais je ne vois pas trop comment je
> > > peux incorporer cela dans un script :
> > > Par exmple, je vais chercher la ligne k du fichier $1 que je lui
> > > donne en entree.
> >
> > Bon je ne vais pas te donner une lecon de bourne shell ... mais quand
> > meme :
> >
> > (je prend pas de 0 ca pourrait devenir confusant ;^)
> >
> > soit un fichier file.txt compose de la sorte :
> >
> > cat > file.txt <<!
> > 1 11 111 1111 11111
> > 2 22 222 2222 22222
> > 3 33 333 3333 33333
> > 4 44 444 4444 44444
> > 5 55 555 5555 55555
> > !
> >
> >
> > disons que dans la variable mot soit enregistre le contenu de X_pos (la
> > colonne) et Y_pos (la ligne) de file.txt
> >
> > fichier=file.txt
> > X_pos=4
> > Y_pos=3
> >
> > echo $X_pos  $Y_pos $fichier
> >
> > alors l'extraction de cette information sera :
> >
> > set -- `sed -ne "${Y_pos}p" $fichier`
> > eval mot=\$$X_pos
> >
> > echo $mot
> >
> > dans ce cas de figure set, eval et echo sont toujours des instructions
> > built-in ...
> >
> >      set, unset, setenv, unsetenv, export - shell built-in  func-
> >      tions  to  determine  the  characteristics for environmental
> >      variables of the current shell and its descendents ...
> >
> >      exec, eval, source - shell  built-in  functions  to  execute
> >      other commands ...
> >
> >      The C shell, the Korn shell, and the Bourne shell  all  have
> >      echo  built-in  commands, which, by default, will be invoked
> >      ...
> >
> > donc plus rapide que 2 pipes qui appellent awk et tail ...
> >
> > dans ton cas de figure ce sera probablement insignifiant, mais quand meme
> > ;^)))
> >
> >                 XB.
> 
> Merci pour la lecon, crois-moi, j'en ai besoin, et je n'ai aucune
> honte a recevoir des conseils de personnes en connaissant plus
> que moi en shell !!!
> 
> Ton astuce est tres jolie, et fonctionne effectivement,
> maintenant que je l'ai testee ... en bash!
> 
> Malheureusement, je n'ai que tcsh, pauvre de moi, donc cette
> manip conduit a un malheureux probleme. J'ai essaye d'adapter le
> script, et voici ce qu'il donne :
> #!/bin/tcsh
> 
> set k=3
> set un=0
> 
> set un=`sed -ne "${k}p" $1`|eval $2
> #eval un=$2
> echo $un
> 
> Il me repond ... 0
> 
> ce qui n'est pas mon cas.
> En fait, ce n'est pas si anodin que cela, car les fichiers (je
> repete la manip deux fois) font chacun 5000 lignes, et si je peux
> gagner du temps en apprenant, je suis ouvert.
> maintenant que tu as les donnes en main, est-ce que ton systeme,
> qui au demeurant me parait plus rapide, peut etre adapte en
> (t)csh ?
> 
> Merci encore de l'aide, Stef
> 
>   ------------------------------------------------------------------------
> Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
> Rendez-vous sur "http://www.mandrakestore.com";

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Répondre à