bash - 寻找 AWK 替代方案来加速此命令

标签 bash amazon-s3 awk aws-cli gnu-parallel

我一直在为这个命令使用 AWK,但它太慢了。

必须有一种更快的方法从 aws s3 ls 命令

处理这个列表
s5cmd ls s3://bucket-name/* | awk -v AWS_BUCKET="bucket-name" '{cmd="aws s3api put-object-acl --access-control-policy file:///access_policy.json --bucket " AWS_BUCKET " --key "$5; system(cmd); print $5}'

这基本上列出了所有对象,然后将 ACL 应用于它们。

有什么想法吗?

最佳答案

我的答案是两个答案的组合

s5cmd ls s3://bucket-name/* |
  awk -v AWS_BUCKET="bucket-name" '{
    printf "aws s3api put-object-acl --access-control-policy file:///access_policy.json --bucket %s --key %s\n", AWS_BUCKET, $5
  }' |
  parallel -j 32

这大大加快了这个命令,谢谢 Glenn Jackman 和 Mark Setchell

关于bash - 寻找 AWK 替代方案来加速此命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58754007/

相关文章:

bash - 根据模式将一个文件拆分为多个文件

shell - 根据命令行中的列拆分 csv 文件

hadoop - 使用 hadoop 从 S3 'requester pay' 存储桶下载数据时出错

ruby-on-rails - 如何处理 gem 的异常

javascript - 使用 Javascript SDK 从 AWS s3 存储桶获取对象 : "missing credential" error

bash - 杀死一系列进程

linux - 如何在远程服务器上自动执行几十条命令集

bash - 使用 awk/sed 追加和替换

linux - 我的 $PATH 和 bash 命令遇到问题

linux - BASH Rsync 排除不起作用。可能的语法错误?