如何对“s3cmd ls”的输出进行排序

14

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、正则表达式吗?
谢谢!

展示结果应该是什么样子。 - Dennis Williamson
4个回答

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

这将按日期升序排列。


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

以数字排序应该将最年轻的日期放在最后。tail -n1 获取最后一行,awk 剪切第一个单词即日期,利用它获取该日期下的所有条目。

但也许我没有理解问题-所以您需要重新表述它。 您告诉我们“日期和时间未排序”,并提供一个示例,在该示例中它们已排序-您要求获取最新日期,但所有条目都具有相同的日期。


2
请尝试:
此命令语法为s3 ls s3://存储桶路径/文件 | sort
s3cmd ls s3://file1.tgz.00<br>  | sort

它最后将按照日期降序排序。

这真的是最好的答案。 - Blake Yarbrough

0
只需在您的命令中附加| sort即可按日期排序。最近的文件将出现在您的命令行正上方。 s3cmd ls s3://path/to/file | sort

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接