Как отсортировать вывод "s3cmd ls" - PullRequest
9 голосов
/ 20 апреля 2010

Amazon "s3cmd ls" принимает такой вывод:

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>

Как выбрать все файлы архива, заканчивающиеся на 00 ... XX, с последней датой набора файлов?

Дата и время не отсортированы.

Bash, regexp?

Спасибо!

Ответы [ 3 ]

12 голосов
/ 11 июня 2014
s3cmd ls s3://bucket/path/ | sort -k1,2

Это будет сортировать по возрастанию даты.

10 голосов
/ 22 апреля 2010
DATE=$(s3cmd ls | sort -n | tail -n 1 | awk '{print $1}')
s3cmd ls | grep $DATE 

сортировка по числу должна ставить самые младшие даты в последнюю очередь. Tail -n1 занимает последнюю строку, awk обрезает первое слово, которое является датой. Используйте это, чтобы получить все записи на эту дату.

Но, возможно, я не понял вопроса - так что вы должны перефразировать его. Вы говорите нам, что «дата и время не отсортированы», и приводите пример их сортировки - вы запрашиваете самую последнюю дату, но все записи имеют одинаковую дату.

0 голосов
/ 10 апреля 2018

Попробуйте

Синтаксис этой команды: s3 ls s3: // путь к корзине / файлам | сортировать

s3cmd ls s3://file1.tgz.00<br>  | sort

В конце сортируется по убыванию

...