Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
analyser une string pour initialiser des variables
Envoyé par: dam

Bonjour je suis débutant en shell script,
J'analyse un nom de fichier avec cut pour en tirer une information string genre chronomètre.
Par exemple : 1'18''659 ou 27''536. Ca j'y arrive. La où je bloque c'est pour initialiser les variables min, sec et frac correspondantes.
Pour l'exemple 1 : min=1; sec=18; frac=659
Pour l'exemple 2 : min=0; sec=27; frac=536
J'imagine qu'il y a un if pour gérer ou pas la présence de minutes, ptètre avec awk mais je ne connais pas la syntaxe.
Merci de votre aide.

Poste le Monday 6 June 2005 17:08:10
Répondre     Citer    
Re: analyser une string pour initialiser des variables

tu peux donner plus d'information, fichier sources ... etc etc car jouer avec des " et des ' en bash, c'est pas ce qu'il y a de plus drole.

--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Monday 6 June 2005 18:51:09
Répondre     Citer    
Re: analyser une string pour initialiser des variables
Envoyé par: Sve@r

Oui, c'est pas franchement amusant ton truc
Enfin, il faut bien s'y coller...

#!/bin/sh

# Boucle sur les arguments
for arg in $*
do

....# Extraction des minutes
....if echo $arg |grep "'" 1>/dev/null
....then
........min=`echo $arg |cut -f1 -c"'"`
........arg=`echo $arg |cut -f2- -c"'"`
....else
........min=0
....fi

....# Extraction des secondes
....if echo $arg |grep "\"" 1>/dev/null
....then
........sec=`echo $arg |cut -f1 -c"\""`
........arg=`echo $arg |cut -f2- -c"\""`
....else
........sec=0
....fi

....# Reste
....frc=arg

....# Affichage
....echo "min=$min, sec=$sec, frc=$frc"
done

J'ai pas testé mais cela devrait être assez réussi...

Poste le Monday 6 June 2005 21:27:06
Répondre     Citer    
Re: analyser une string pour initialiser des variables

En n'utilisant que le bash


if [  $i != ${i/\"/@} ]
then  frac=${i#*\"}
      min_sec=${i%\"*}
      sec=${min_sec#*\'}
      if [  $min_sec != ${min_sec/\'/@} ]
                then min=${min_sec%\'*}
                else min=0

      fi
fi


echo  i = $i
echo  min = $min
echo sec = $sec 
echo frac = $frac

--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Monday 6 June 2005 23:18:21
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
analyser une string pour initialiser des variables
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons