28

AWS CLI を使用してバケットの内容をクエリし、特定のファイルが存在するかどうかを確認したいのですが、バケットには何千ものファイルが含まれています。結果をフィルタリングして、パターンに一致するキー名のみを表示するにはどうすればよいですか? 例えば:

aws s3api list-objects --bucket myBucketName --query "Contents[?Key==*mySearchPattern*]"
4

2 に答える 2

62

--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"
于 2014-12-03T15:04:31.427 に答える