我正在使用AWS CLI使用如下命令将文件从S3存储桶复制到我的R计算机:
system(
"aws s3 cp s3://my_bucket_location/ ~/my_r_location/ --recursive --exclude '*' --include '*trans*' --region us-east-1"
)
Run Code Online (Sandbox Code Playgroud)
这按预期工作,即它复制my_bucket_location中该位置文件名中包含"trans"的所有文件.
我面临的问题是我有其他文件具有类似的命名约定,我不想在此步骤中导入.作为一个例子,在下面的列表中我只想复制前两个文件,而不是最后两个:
File list
trans_120215.csv
trans_130215.csv
sum_trans_120215.csv
sum_trans_130215.csv
Run Code Online (Sandbox Code Playgroud)
如果我正在使用正则表达式,我可以使它更具体"^trans_\\d+",只需要引入前两个文件,但使用AWS CLI似乎不可能.所以我的问题是如何使用AWS CLI进行更复杂的模式匹配,如下所示?
system(
"aws s3 cp s3://my_bucket_location/ ~/my_r_location/ --recursive --exclude '*' --include '^trans_\\d+' --region us-east-1"
)
Run Code Online (Sandbox Code Playgroud)
请注意,我只能使用有关文件的信息,即我想导入带有模式的文件"^trans_\\d+",我不能使用其他不需要的文件在开头包含sum_的事实,因为这只是一个例子可能是其他类似名称的文件,如"check_trans_120215.csv".
我已经考虑了下面的其他替代方案,但希望有一种方法可以调整复制命令以避免沿着这两条路线走下去: