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";

Répondre à