파일 이름을 기준으로 s3 버킷의 파일 필터링

파일 이름을 기준으로 s3 버킷의 파일 필터링

다음과 같은 이름의 파일이 포함된 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'

관련 정보