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
A voir également:

5 réponses

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
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
Jolkdarr
 
Hello !

Pour les amateurs de Perl :
#!/usr/bin/perl -w

$_ = (sort glob("*.fic"))[-1];
s/[^\d]//g;
print;

Take care !
0
Jolkdarr
 
Légère simplification :
#!/usr/bin/perl -w

$_ = (sort glob("*.fic"))[-1];
s/\D//g;
print;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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