数百のファイルを含む特定のバケットから、今日からのS3からのファイルのみをコピーしたいと思います。次のことを試しました:$ 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") }'
ですが、うまく機能しません。他の日付のファイルも取得します。これを正しく行うにはどうすればよいですか?
それは2番目のaws s3
sync
を使用します。代わりにcp
を試してください。また、「grep」と「awk」をマージすることもできます。
$ aws s3 ls s3://cve-etherwan/ --recursive | awk '/^2018-11-06/{system("aws s3 cp s3://cve-etherwan/$4 .") }'
これは私のために働いたものです
system
n回呼び出す代わりに、テキスト出力を作成し、それをbashにパイプしますはい、bashへの配管には注意してください:-)
aws s3 ls --recursive s3://cve-etherwan/
| awk '/^2019-12-12 08:[0-3]/{
print "aws s3 cp s3://cve-etherwan/"$4" ."}'
| bash