「S3CMD LS」の出力を並べ替える方法
質問
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?
ありがとう!
解決
DATE=$(s3cmd ls | sort -n | tail -n 1 | awk '{print $1}')
s3cmd ls | grep $DATE
数字としてのソートは、最年少の日付を最後に置きます。 Tail -N1は最後の行を取り、awkは日付である最初の単語をカットします。それを使用して、その日付のすべてのエントリを取得します。
しかし、たぶん私は質問を理解していなかったので、あなたはそれを言い換える必要があります。 「日付と時刻はソートされていない」と言って、それらがソートされる例を提供します - 最新の日付を尋ねますが、すべてのエントリには同じ日付があります。
他のヒント
s3cmd ls s3://bucket/path/ | sort -k1,2
これは、日付までに並べ替えます。
試す
このコマンド構文はです S3 LS S3://バケット/ファイルのパス |選別
s3cmd ls s3://file1.tgz.00<br> | sort
ついに下降日に並べ替えます
所属していません StackOverflow