
次の名前のファイルを含む s3 バケットがあります。
example_test_20200612010000
example_test_20200612020000
example_test_20200612020000
example_control_20200612010000
example_control_20200612020000
example_control_20200612020000
このようなファイルは数分ごとにこのs3バケットに入ります。どのテストファイルが新しいものか(まだ処理されていない)を確認する必要があります。私のロジックは、次のことを行うことです。
aws s3 ls [s3 bucket name] --profile [profile name] | grep "test" | awk '$4 > 'example_test_20200612010000'
ファイルの命名は常に一貫しているため、このバケットでファイル名が処理した最新のファイルよりもアルファベット順に大きいすべてのテストファイルを確認してください(したがって、最後のタイムスタンプ部分の比較)。
答え1
努力する
| awk -v ref=example_test_20200612010000 '/test/ && $4 > ref { print $4}'
日付ごとにオブジェクトを一覧表示できます(すべて1行に)。
aws s3api list-object --bucket ...
--query 'Contents[?LastModified>`2020-05-01`].{Key: Key,Size: Size}'
2020-05-01
もちろん、LastModified>を交換してください。
以下を使用してJSON結果を処理します。
| jq -r '.[].Key'