다음과 같은 이름의 파일이 포함된 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}'
날짜별로 개체를 나열할 수 있습니다(모두 한 줄에).
aws s3api list-object --bucket ...
--query 'Contents[?LastModified>`2020-05-01`].{Key: Key,Size: Size}'
2020-05-01
물론 LastModified>를 교체하세요.
다음을 사용하여 JSON 결과를 처리합니다.
| jq -r '.[].Key'