寻找AWK替代品以加快此命令的速度

问题描述 投票:0回答:1

我一直在使用AWK来执行此命令,但是它太慢了。

必须有一种更快的方法来处理来自aws s3 ls command的列表

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应用于它们。

有什么想法吗?

bash amazon-s3 awk aws-cli gnu-parallel
1个回答
0
投票

而不是代替每行执行system(cmd),您可能只想打印所有命令,然后将输出传递到sh中以执行它们。

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

您在那里有那个流浪-v。我认为这是一个错字,或者您删除了一些敏感内容。

© www.soinside.com 2019 - 2024. All rights reserved.