163 votes

Bash, afin de rechercher des fichiers les plus récents qui correspondent au motif

En Bash, je voudrais créer une fonction qui renvoie le nom du nouveau fichier qui correspond à un certain modèle. Par exemple, j'ai un répertoire de fichiers comme:

Directory/
   a1.1_5_1
   a1.2_1_4
   b2.1_0
   b2.2_3_4
   b2.3_2_0

Je veux que le nouveau fichier qui commence par 'b2'. Comment puis-je le faire en bash? J'ai besoin d'avoir dans mon ~/.bash_profile script.

268voto

lesmana Points 8125

L' ls commande a un paramètre -t de trier par heure. Vous pouvez alors saisir la première (la plus récente) avec head -1.

ls -t b2* | head -1

Voir aussi:

4voto

glenn jackman Points 69748

Insolite les noms de fichier (tel qu'un fichier contenant le valide \n personnage peut faire des ravages avec ce genre d'analyse. Voici une façon de le faire en Perl:

perl -le '@sorted = map {$_->[0]} 
                    sort {$a->[1] <=> $b->[1]} 
                    map {[$_, -M $_]} 
                    @ARGV;
          print $sorted[0]
' b2*

C'est un Schwartzian transformer celle-là.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X