Eu gostaria de copiar apenas arquivos do S3 que são de hoje de um determinado bucket com 100s de arquivos. Tentei o seguinte: $ aws s3 ls s3://cve-etherwan/ --recursive --region=us-west-2 | grep 2018-11-06 | awk '{system("aws s3 sync s3://cve-etherwan/$4 . --region=us-west-2") }'
mas não funciona bem, também recebo arquivos de outras datas. Como faço isso corretamente?
Isso porque no segundo
aws s3
você usasync
. Tentecp
em vez disso. Além disso, você pode mesclar o "grep" e o "awk" juntos.Isto é o que funcionou para mim
system
n vezes do awk, crie uma saída de texto e canalize-a através do bashSim, tenha cuidado com a tubulação no bash :-)
A resposta do Mlu funcionou para mim, mas tive que escapar dos US $ 4 no Amazon Linux 2.
com
"aws s3 cp s3://my-files/$4 ."
substituído por"aws s3 cp s3://my-files/" $4 " ."
awk
irá concatenar a string por padrão.