AWS CLI を使用してバケットの内容をクエリし、特定のファイルが存在するかどうかを確認したいのですが、バケットには何千ものファイルが含まれています。結果をフィルタリングして、パターンに一致するキー名のみを表示するにはどうすればよいですか? 例えば:
aws s3api list-objects --bucket myBucketName --query "Contents[?Key==*mySearchPattern*]"
AWS CLI を使用してバケットの内容をクエリし、特定のファイルが存在するかどうかを確認したいのですが、バケットには何千ものファイルが含まれています。結果をフィルタリングして、パターンに一致するキー名のみを表示するにはどうすればよいですか? 例えば:
aws s3api list-objects --bucket myBucketName --query "Contents[?Key==*mySearchPattern*]"
--query
引数は JMESPath 式を使用します 。JMESPath には、文字列パターンを検索できる内部関数があります。contains
これにより、望ましい結果が得られるはずです。
aws s3api list-objects --bucket myBucketName --query "Contents[?contains(Key, `mySearchPattern`)]"
(Linux'
では、バックティックではなく単一引用符を使用する必要があり`
ましたmySearchPattern
。)
特定の文字で始まるキーを検索する場合は、次の--prefix
引数も使用できます。
aws s3api list-objects --bucket myBucketName --prefix "myPrefixToSearchFor"