besoin d'aide sur script decopupe de variable [Resolu]

besoin d'aide sur script decopupe de variable [Resolu] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 18-03-2003 à 09:10:35    

Alut a tous.
 
Bon pour ceux qui en font tout les jours, mon pb n'est pas compliqué.
Mais pour moi, ben j'arrive a penser a rien d'autre qu'un truc bien lourd.
 
donc. G une variable $VAR qui a comme valeur soit :  
" MAX(15)   MIN(5)   "
soit
"MIN(5) "
 
le truc c'est que j'aimerai a tout les coup recuperer la valeur du MIN : 5 dans ces exemple.
 
Bon avec du pipe de cut j'arrive a chopper la valeur mais C deja lourd. alors si je prends en compte le test du MAX ou MIN, on as mon usine a gaze pas belle :)
 
pi je vois pas trop en awk.
 
a votre bon coeur. merci.
 
edit : titre + causant :)


Message édité par natwyn le 19-03-2003 à 13:15:57

---------------
Les kiwis c'est bon! Mangez-en
Reply

Marsh Posté le 18-03-2003 à 09:10:35   

Reply

Marsh Posté le 18-03-2003 à 09:50:07    



[pts/2][09:55]manu@bassed6:~> a=" MAX(15)   MIN(5)   "
[pts/2][09:55]manu@bassed6:~> echo ">$a<"
> MAX(15)   MIN(5)   <
[pts/2][09:55]manu@bassed6:~> b=${a##*MIN(}; echo ${b%%)*}
5
[pts/2][09:56]manu@bassed6:~> a="MIN(5) "  
[pts/2][09:56]manu@bassed6:~> echo ">$a<"
>MIN(5) <
[pts/2][09:56]manu@bassed6:~>  b=${a##*MIN(}; echo ${b%%)*}
5
[pts/2][09:56]manu@bassed6:~>  

Reply

Marsh Posté le 18-03-2003 à 09:53:01    

minusplus a écrit :



[pts/2][09:55]manu@bassed6:~> a=" MAX(15)   MIN(5)   "
[pts/2][09:55]manu@bassed6:~> echo ">$a<"
> MAX(15)   MIN(5)   <
[pts/2][09:55]manu@bassed6:~> b=${a##*MIN(}; echo ${b%%)*}
5
[pts/2][09:56]manu@bassed6:~> a="MIN(5) "  
[pts/2][09:56]manu@bassed6:~> echo ">$a<"
>MIN(5) <
[pts/2][09:56]manu@bassed6:~>  b=${a##*MIN(}; echo ${b%%)*}
5
[pts/2][09:56]manu@bassed6:~>  




 
vas y fe peter les explications  :whistle:

Reply

Marsh Posté le 18-03-2003 à 09:58:58    

ben ca a l'aire de marcher
 
j'essaye d'incruster ca ds mon scipt.
 
je comprends pas tout. mais ca me plais.
 
pareil que tomate si tu peux expliqué car la, je voie meme pas sur quoi faire un man pour trouver :)  :pt1cable:  
 
Merci  :jap:


---------------
Les kiwis c'est bon! Mangez-en
Reply

Marsh Posté le 18-03-2003 à 10:00:40    

natwyn a écrit :

ben ca a l'aire de marcher
 
j'essaye d'incruster ca ds mon scipt.
 
je comprends pas tout. mais ca me plais.
 
pareil que tomate si tu peux expliqué car la, je voie meme pas sur quoi faire un man pour trouver :)  :pt1cable:  
 
Merci  :jap:  


 
man sh ou bash :D

Reply

Marsh Posté le 18-03-2003 à 10:02:07    

man bash :o
 
 


       ${parameter#word}
       ${parameter##word}
              The word is expanded to produce a pattern just as in pathname expan-
              sion.   If the pattern matches the beginning of the value of parame-
              ter, then the result of the  expansion  is  the  expanded  value  of
              parameter with the shortest matching pattern (the ``#'' case) or the
              longest matching pattern (the ``##'' case) deleted.  If parameter is
              @  or *, the pattern removal operation is applied to each positional
              parameter in turn, and the expansion  is  the  resultant  list.   If
              parameter  is an array variable subscripted with @ or *, the pattern
              removal operation is applied to each member of the  array  in  turn,
              and the expansion is the resultant list.
 
       ${parameter%word}
       ${parameter%%word}
              The word is expanded to produce a pattern just as in pathname expan-
              sion.  If the pattern matches a trailing  portion  of  the  expanded
              value of parameter, then the result of the expansion is the expanded
              value of parameter with the shortest  matching  pattern  (the  ``%''
              case) or the longest matching pattern (the ``%%'' case) deleted.  If
              parameter is @ or *, the pattern removal  operation  is  applied  to
              each  positional  parameter in turn, and the expansion is the resul-
              tant list.  If parameter is an array variable subscripted with @  or
              *,  the  pattern  removal operation is applied to each member of the
              array in turn, and the expansion is the resultant list.

Reply

Marsh Posté le 18-03-2003 à 10:02:58    


 
 
j en etais sur [:ddr555]

Reply

Marsh Posté le 18-03-2003 à 10:19:24    

heu!! ca marche en sh ca?
 
car j'arrive pas a le faire tourner.
 
Et j'ai pas de bash sur ces machines la moi. :-(


---------------
Les kiwis c'est bon! Mangez-en
Reply

Marsh Posté le 18-03-2003 à 11:17:26    

bon ben finalement voila ce que j'ai trouver.
 

Code :
  1. echo $VAR | awk -F"MIN" '{ print $2 }' | cut -d"(" -f2 | cut -d" )" -f1


 
C'est moins beau mais ca tourne.


---------------
Les kiwis c'est bon! Mangez-en
Reply

Marsh Posté le 18-03-2003 à 11:27:56    

natwyn a écrit :

bon ben finalement voila ce que j'ai trouver.
 

Code :
  1. echo $VAR | awk -F"MIN" '{ print $2 }' | cut -d"(" -f2 | cut -d" )" -f1


 
C'est moins beau mais ca tourne.

:jap:

Reply

Marsh Posté le 18-03-2003 à 11:27:56   

Reply

Marsh Posté le 18-03-2003 à 11:52:19    


$> perl
$a="MAX(45)   MIN(76)   ";
($b)=$a=~/^.*MIN\((.*[^\)])\).*$/;
print $b."\n";
76  
$>


 
ouarf ouarf ouarf  [:zerod]


Message édité par zerod le 18-03-2003 à 11:52:52
Reply

Marsh Posté le 18-03-2003 à 11:57:16    

zerod a écrit :


$> perl
$a="MAX(45)   MIN(76)   ";
($b)=$a=~/^.*MIN\((.*[^\)])\).*$/;
print $b."\n";
76  
$>


 
ouarf ouarf ouarf  [:zerod]

:ouch:  :ouch:  
 
 

Reply

Marsh Posté le 18-03-2003 à 12:52:16    

natwyn a écrit :

bon ben finalement voila ce que j'ai trouver.
 

Code :
  1. echo $VAR | awk -F"MIN" '{ print $2 }' | cut -d"(" -f2 | cut -d" )" -f1


 
C'est moins beau mais ca tourne.

ça tourne pas mon truc ?

Reply

Marsh Posté le 18-03-2003 à 12:54:11    

zerod a écrit :


$> perl
$a="MAX(45)   MIN(76)   ";
($b)=$a=~/^.*MIN\((.*[^\)])\).*$/;
print $b."\n";
76  
$>


 
ouarf ouarf ouarf  [:zerod]


[pts/2][12:59]manu@bassed6:~> a=" MAX(15)   MIN(5)   "
[pts/2][13:00]manu@bassed6:~> echo $a | sed 's/.*MIN(\(.*\)).*/\1/'
5
[pts/2][13:00]manu@bassed6:~>  

Reply

Marsh Posté le 18-03-2003 à 13:32:12    

minusplus a écrit :


[pts/2][12:59]manu@bassed6:~> a=" MAX(15)   MIN(5)   "
[pts/2][13:00]manu@bassed6:~> echo $a | sed 's/.*MIN(\(.*\)).*/\1/'
5
[pts/2][13:00]manu@bassed6:~>  




 
oh le malin  :whistle:

Reply

Marsh Posté le 18-03-2003 à 13:39:54    

minusplus a écrit :

ça tourne pas mon truc ?


 
 
ben non :-(
 
je suis en sh pas en bash.
 
dc soit ca viens de la soit C moi qui ai pas reussi ton truc.
 
enfin avec du cut/past j'ai un doute.
 
dc => ca marche pas en sh. et je voie bien la tête du type si je lui demande de mettre un bash sur sa machine de prod pour que mon script y tourne :) lol
pi y'en a pas qu'une de machine. y'en aurrait + dans les 200 :) et doit pas y'avoir bcp de bash d'installé :)
 
en tout cas merci.
J'ai garder ca dans un coin car sa me servirra sur mon linux chez moi a l'occaze.


---------------
Les kiwis c'est bon! Mangez-en
Reply

Marsh Posté le 18-03-2003 à 13:43:46    

natwyn a écrit :


 
 
ben non :-(
 
je suis en sh pas en bash.
 

ah ui, pardon ! :o

Reply

Marsh Posté le 18-03-2003 à 13:45:14    

minusplus a écrit :


[pts/2][12:59]manu@bassed6:~> a=" MAX(15)   MIN(5)   "
[pts/2][13:00]manu@bassed6:~> echo $a | sed 's/.*MIN(\(.*\)).*/\1/'
5
[pts/2][13:00]manu@bassed6:~>  




 
mouarf j'avais pas vu celui la.
 
celui la est ok sur sh.
 
Mais dit, t'es humain toi?
t'est du coté obscure du shell toi :)
 
remarque avec un truc comme ca, j'aimerrai pas etre moi quand je reprends le truc dans 3 mois.  :pt1cable:   :pt1cable:  
 
deja la en 5 min j'ai pas encore tout compris :)   :jap:


---------------
Les kiwis c'est bon! Mangez-en
Reply

Marsh Posté le 18-03-2003 à 14:04:10    

natwyn a écrit :


 
mouarf j'avais pas vu celui la.
 
celui la est ok sur sh.
 
Mais dit, t'es humain toi?
t'est du coté obscure du shell toi :)
 
remarque avec un truc comme ca, j'aimerrai pas etre moi quand je reprends le truc dans 3 mois.  :pt1cable:   :pt1cable:  
 
deja la en 5 min j'ai pas encore tout compris :)   :jap:  


 
c est juste des expressions regulieres avec sed ;)
 
ca rentre vite t inquiete :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed