Вместо того, чтобы делать 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
там. Я предполагаю, что это опечатка, или вы удалили что-то чувствительное.