2016-08-02 2 views
0

Voici quelques fichiers qui sont disponibles dans le répertoire Et le temps d'époque est aussi une partie de ce fichier entre # SYMBOLESListe des fichiers en les triant selon l'timestamp dans le nom de fichier

A#1444846033#1.txt 
A#1444846037#1.txt 
A#1444846041#1.txt 
A#1444846057#1.txt 
A#1444846061#1.txt 
A#1444846045#1.txt 
A#1444846065#1.txt 
A#1444846049#1.txt 
A#1444846069#1.txt 
A#1444846053#1.txt 

Je veux pour trier les fichiers ci-dessus en utilisant l'heure de l'époque en les listant en utilisant la commande ls ou ll Quels sont les drapeaux utilisés lors de l'utilisation de ll?

+0

La réponse dépend des symboles en dehors de l'horodatage. Avez-vous toujours 'A #' avant et '#txt' après? – GMichael

+0

up.v.000945: losa.01.tns.17.elm.0 # 780200700103 # 1444852273 # 1.bin: Ceci est la façon dont les fichiers sont nommés – user2256825

+0

Vous n'avez pas marqué les parties constantes des noms. – GMichael

Répondre

0

S'il vous plaît essayer

ls -1 | sort -t '#' -k 2 

ls -1 produit la liste des fichiers dans une colonne. Le sort suivant prend cette liste et la trie par le deuxième champ (-k 2) en utilisant le symbole # (-t '#') comme séparateur de champ.

Étant donné que votre modèle de nom de fichier ne comporte ni symboles spéciaux, ni nouveaux symboles de ligne, il ne devrait y avoir aucun problème jusqu'à ce qu'un très grand nombre de fichiers soit placé dans le même répertoire.

+0

Bien que cela puisse être un indice valable pour résoudre le problème, a vraiment besoin d'un peu plus de détails que cela. S'il vous plaît [edit] pour expliquer comment cela va résoudre le problème. En particulier, vous devriez souligner les limites de cette approche, principalement en ce qui concerne les nouvelles lignes dans les noms de fichiers, mais aussi le décimal décimal (bien que ce soit longtemps avant le prochain, je me souviens d'atteindre 10 milliards depuis l'époque Unix). Vous pouvez également écrire ceci comme commentaire. –