2010-04-20 18 views
6

"Amazon s3cmd ls" prend comme cette sortie:
Comment trier la sortie de "ls" s3cmd

2010-02-20 21:01 1458414588 s3://file1.tgz.00<br> 
2010-02-20 21:10 1458414527 s3://file1.tgz.01<br> 
2010-02-20 22:01 1458414588 s3://file2.tgz.00<br> 
2010-02-20 23:10 1458414527 s3://file2.tgz.01<br> 
2010-02-20 23:20 1458414588 s3://file2.tgz.02<br> 
<br> 

Comment sélectionner tous les fichiers d'archives, se terminant à 00 ... XX, avec la date la plus de l'ensemble de fichiers?

La date et l'heure ne sont pas triées.

Bash, regexp?

Merci!

+0

Montrer à quoi le résultat devrait ressembler. –

Répondre

8
DATE=$(s3cmd ls | sort -n | tail -n 1 | awk '{print $1}') 
s3cmd ls | grep $DATE 

Le tri en nombre de nombres mettra les dates les plus récentes en dernier. Queue -n1 prend la dernière ligne, awk coupe le premier mot qui est la date. Utilisez-le pour obtenir toutes les entrées de cette date.

Mais peut-être que je n'ai pas compris la question - vous devez donc la reformuler. Vous nous dites que la date et l'heure ne sont pas triées et fournissez un exemple où elles sont triées - vous demandez la date la plus récente, mais toutes les entrées ont la même date.

7
s3cmd ls s3://bucket/path/ | sort -k1,2 

Cela va trier par date croissante.