フォルダ(プレフィックス)直下のオブジェクト検索したい場合、コンソールの検索欄では前方一致検索しかできません。部分一致検索は、Cloud Shellで以下のコマンドを実行することで実現できます。
aws s3 ls [フォルダのURI] | grep [検索ワード] | grep -v '/$' | awk '{print $4}'
コマンド解説
aws s3 ls [フォルダのURI]
:直下のフォルダ(プレフィックス)、オブジェクトの情報を出力する
PRE test/ 2025-01-30 11:10:37 0 test.txt 2025-01-30 11:10:37 0 test2.txt
- オブジェクトの場合、更新時の年月日、更新時の時分秒、オブジェクトサイズ、オブジェクト名が表示されます
- フォルダ(プレフィックス)の場合、3列目にプレフィックスであることを示すPREの文字、4列目にフォルダ名が表示されます
grep [検索ワード]
:[検索ワード]を含むものを抽出するgrep -v '/$'
: 末尾が/
のもの(フォルダ)を出力から除外するawk '{print $4}'
:4列目(オブジェクト名)のみを出力する
使用例
ケース1
sample
バケットのtest
フォルダで、オブジェクト名に20250131
を含むオブジェクトを検索する
コマンド
aws s3 ls s3://sample/test/ | grep 20250131 | grep -v '/$' | awk '{print $4}'
出力
20250131_1.txt 20250131_2.txt 20250131_3.txt
ケース2
sample
バケットのtest
フォルダで、オブジェクト名に.csv
を含むオブジェクトを検索する
コマンド
aws s3 ls s3://sample/test/ | grep .csv | grep -v '/$' | awk '{print $4}'
出力
test_1.csv test_2.csv test_3.csv