Prog shell : petit pb de debutant

Fermé
gunado - 10 nov. 2004 à 14:54
 gunado - 12 nov. 2004 à 08:09
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

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

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

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

Take care !
0
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
Merci à tout le monde pour votre participation...
J'ai reussi à finir le truc qu'il fallait que je fasse...
@+ gunado
0