Prog shell : petit pb de debutant

gunado -  
 gunado -
Bonjour les gens :

j'ai qqes petit problemes en shell... pour ne pas dire que je suis nul...
il faudrait que j'ajoute des fichiers a un dossier de fichiers du style fich1.fic, fich2.fic, fich3.fic,.....
Pour cela je dois recuperer le numero le plus grand des fichiers existants (ici je devrai donc avoir 3)...
mon script me permettra donc de renommer mes fichiers pour les mettre a la suite dans mon dossier..
sdfsd.fic doit devenir fich4.fic apres l'execution de mon script.

Le probleme est que je n'arrive pas a recuperer la valeur maximale ...

ls | awk '{
    nb = split($1,tab,/[A-Za-z.-]*/)
    for(i=1;i<=nb;i++){
	max=tab[i];


	if ( max < tab[i]);
	    max=tab[i];
                      fi;
       
printf("max : %s",max);
}
}


une fois sorti de awk ma variable max disparait...
Je vous remercie d'avance...
Alex

5 réponses

  1. yomip
     
    Awk n'est pas la solution à tout. Un script simple est tout aussi efficace. Essaies donc ca:
    #!/bin/bash
    j=0
    for i in `ls | tr -c '[:digit:]' ' ' | sort | uniq`
    do
    if [ -n $i ] && [ $j -lt $i ]
    then
    j=$i
    fi
    done
    echo $j
    0
  2. Alex
     
    Merci yomip....
    Heureusement qu'il y a des gens qui comprennent... moi je crois que la prog shell n'est pas faite pour moi...
    @+
    0
  3. Jolkdarr
     
    Hello !

    Pour les amateurs de Perl :
    #!/usr/bin/perl -w
    
    $_ = (sort glob("*.fic"))[-1];
    s/[^\d]//g;
    print;
    

    Take care !
    0
  4. Jolkdarr
     
    Légère simplification :
    #!/usr/bin/perl -w
    
    $_ = (sort glob("*.fic"))[-1];
    s/\D//g;
    print;
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gunado
     
    Merci à tout le monde pour votre participation...
    J'ai reussi à finir le truc qu'il fallait que je fasse...
    @+ gunado
    0