Les fichiers

Fermé
soukaina321 Messages postés 8 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 mai 2010 - 7 mai 2010 à 11:23
soukaina321 Messages postés 8 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 mai 2010 - 12 mai 2010 à 10:36
Bonjour , j'ai un fichier qui contient
A.txt
/home/fichier.txt
/home/fichier_a1b0.txt
/home/fichier_a1b1.txt
/home/fichier_a1b2.txt
/home/fichier_a2b1.txt
.
.
etc

En faite je veux une commande qui va me permettre de prendre le fichier qui a la version la plus grande
Est dans ce cas c'est fichier_a2b1.txt
Tout en sachant que je ne connais pas les vesrions
Merci d'avance
>

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
7 mai 2010 à 11:42
Salut,

Je suppose que le fichier est généré depuis une commande "ls" ?

Si oui, voir l'option "-v" de la commande "ls" :

       -v     Trier le contenu des répertoires en fonction de la  version  des
              fichiers.  Ceci prend en compte le fait que les noms de fichiers
              utilisent fréquemment des indices ou des numéros de version. Les
              fonctions de tri standards ne fournissent pas en général l'ordre
              attendu car les comparaisons ont lieu caractère  par  caractère.
              Le  tri  de  version  gère  ce problème, et est particulièrement
              utile lorsque l'on parcourt des répertoires  contenant  de  nom-
              breux  indices  ou  numéros de version dans les noms de fichier.
              Par exemple :
                   $ ls -1            $ ls -1v
                   foo.zml-1.gz       foo.zml-1.gz
                   foo.zml-100.gz     foo.zml-12.gz
                   foo.zml-12.gz      foo.zml-25.gz
                   foo.zml-25.gz      foo.zml-100.gz
              Remarquez que les parties numériques commençant  par  des  zéros
              sont considérées comme des décimales :
                   $ ls -1            $ ls -1v
                   abc-1.007.tgz      abc-1.007.tgz
                   abc-1.012b.tgz     abc-1.01a.tgz
                   abc-1.01a.tgz      abc-1.012b.tgz
              (Ceci est une nouveauté des fileutils-4.0).
0
soukaina321 Messages postés 8 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 mai 2010
7 mai 2010 à 11:55
en faite je sais pas d' ou es ce qu il est généré , je n 'ai en main que le fichier que j'ai cité ci -dessus
y a il pa autre moyens
merci d 'avance
0
salut,

ca serais plus facile si tu navais pas d'exention a tes fichiers tu pourais simplement appliquer
cat fichier_conteneur |sort -ns |tail -1 


dumoin presentement ca te fait une base de travail
0
soukaina321 Messages postés 8 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 mai 2010
11 mai 2010 à 12:48
salut
ça marche pas
0
soukaina321 Messages postés 8 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 mai 2010
11 mai 2010 à 13:27
svp y at'il une commande permettant de supprimer tout les caractere ainsi que les lettre et ne gardant que les chiffre
c a dire
je veux que ele fichier suivant
A.txt
/home/fichier_a1b0.txt
/home/fichier_a1b1.txt
devient


A.txt
10
11
merci d 'avance
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
11 mai 2010 à 13:31
Re-

sed 's/[^[:digit:]]//g'
0
soukaina321 Messages postés 8 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 mai 2010
12 mai 2010 à 10:36
merci bcp
en ce qui concerne la solution au problème principal (version)
dés que je la finalise je vs la transmet
:)
0