s3cmd:根据扩展名搜索文件并从存储桶中删除

Mar*_*tin 2 amazon-s3 amazon-web-services s3cmd

我有一个S3存储桶,其中包含数千个文件夹和许多文件夹中的txt文件.

我想列出存储桶中的所有txt文件,以便检查它们是否可移动.然后删除它们.

知道怎么用s3cmd做这个吗?

Chr*_*her 10

这很简单,但取决于您希望检查的复杂程度.假设您要删除文件名包含'foo'的每个文本文件:

s3cmd --recursive ls s3://mybucket |
    awk '{ print $4 }' | grep "*.txt" | grep "foo" | xargs s3cmd del
Run Code Online (Sandbox Code Playgroud)

如果你想要比grep可以处理的更复杂的检查,只需将前三个命令重定向到一个文件,然后手动编辑文件或使用或awkperl或你喜欢的工具,然后cat输出到s3cmd(取决于检查,你也可以用管道完成所有这些):

s3cmd --recursive ls s3://mybucket | awk '{ print $4 }' | grep "*.txt" > /tmp/textfiles
magic-command-to-check-filenames /tmp/textfiles
cat /tmp/textfiles | xargs s3cmd del
Run Code Online (Sandbox Code Playgroud)