【问题标题】:How to sort output of "s3cmd ls"如何对“s3cmd ls”的输出进行排序
【发布时间】:2011-02-10 01:46:45
【问题描述】:

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,正则表达式?

谢谢!

【问题讨论】:

  • 显示结果应该是什么样子。

标签: regex bash sorting ls


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    试试

    这个命令语法是s3 ls s3://bucket/files的路径 |排序

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

    最后按日期降序排列

    【讨论】:

    • 这真的是最好的答案
    【解决方案3】:
    s3cmd ls s3://bucket/path/ | sort -k1,2
    

    这将按日期升序排序。

    【讨论】:

      【解决方案4】:
      DATE=$(s3cmd ls | sort -n | tail -n 1 | awk '{print $1}')
      s3cmd ls | grep $DATE 
      

      按数字排序应该把最年轻的日期放在最后。 tail -n1 取最后一行,awk 截取第一个单词,即日期。使用它来获取该日期的所有条目。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-15
        • 2017-09-30
        • 2017-03-04
        • 1970-01-01
        • 1970-01-01
        • 2021-12-13
        • 1970-01-01
        相关资源
        最近更新 更多