如何排序“s3cmd ls”的输出

时间:2010-04-20 10:01:56

标签: regex bash sorting ls

亚马逊“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?

感谢名单!

4 个答案:

答案 0 :(得分:12)

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

这将按日期升序排序。

答案 1 :(得分:10)

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

排序作为数字schould最年轻的日期。尾部-n1取最后一行,awk剪切第一个单词即日期。用它来获取该日期的所有条目。

但也许我不明白这个问题 - 所以你必须改写它。您告诉我们'日期和时间未排序'并提供排序的示例 - 您要求提供最新日期,但所有条目都具有相同的日期。

答案 2 :(得分:0)

尝试

此命令语法为 s3 ls s3://存储桶/文件的路径 |排序

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

它将在最后的降序日期排序

答案 3 :(得分:0)

只需将| sort附加到s3cmd ls命令中即可按日期排序。最新文件将显示在命令行上方。

s3cmd ls s3://path/to/file | sort