Bonjour
J'ai une liste de fichiers historisés sous la forme <nomfichier>-<aaaaMMjj-hhmm>.gz
donc par exemple :
titi-20110220_1400.gz
toto-20110110_0900.gz
titi-20110110_1000.gz
toto-20110220_0700.gz
Je veux pour chaque fichier (toto et titi) ne récupéré que le plus récents
donc :
toto-20110220_0700.gz
titi-20110220_1400.gz
car sinon je me retrouverai avec une liste qui pourrait en théorie atteindre pas loin de 1 million de fichiers... (en pratique ca tournerai plutôt aux alentour de 200 000 fichiers)
mon but est d'avoir cette liste de fichiers (avec chemin depuis le dossier où le script se trouve) dans un tableau obligatoirement trié alphabétiquement
donc pour le moment j'utilise find * | sort qui me retourne la liste des fichiers triée. Mon problème est de réussir à élaguer cette liste, j'ai vu que le find est très puissant, sauf que n'arrive pas à voir comment faire pour lui dire de ne prendre que la derniere historisation de chaque fichier...
je connais la liste des fichiers (toto, titi) mais je ne veux pas avoir à faire une boucle pour recuperer chaque dernière occurence, car après l'algo va faire une boucle (c'est la raison pour laquelle je veux élaguer la liste avant de faire la boucle), l'algo n'ayant besoin que de la derniere historisation du fichier
j'espère avoir été assez clair, au besoin demandez des précisions
merci.
Partager