Google cloud platform gsutil重命名从不同目录复制的文件
我在一个存储桶中有三个文件夹,每个文件夹都包含Google cloud platform gsutil重命名从不同目录复制的文件,google-cloud-platform,google-cloud-storage,gcloud,gsutil,google-cloud-sdk,Google Cloud Platform,Google Cloud Storage,Gcloud,Gsutil,Google Cloud Sdk,我在一个存储桶中有三个文件夹,每个文件夹都包含test\u result\u 0.xml: gs://test-lab-12345-67890/2018-02-23\u 18:48:45.403202\u urtc/Nexus6P-27-en\u US-grait/test\u result\u 0.xml gs://test-lab-12345-67890/2018-02-23\u 18:48:45.403202\u urtc/Nexus7-21-en\u US-grait/test\u r
test\u result\u 0.xml
:
gs://test-lab-12345-67890/2018-02-23\u 18:48:45.403202\u urtc/Nexus6P-27-en\u US-grait/test\u result\u 0.xml
gs://test-lab-12345-67890/2018-02-23\u 18:48:45.403202\u urtc/Nexus7-21-en\u US-grait/test\u result\u 0.xml
gs://test-lab-12345-67890/2018-02-23\u 18:48:45.403202\u urtc/Nexus6P-23-en\u US-grait/test\u result\u 0.xml
test\u result\u 0.xml
test\u result\u 1.xml
test\u result\u 2.xml
使用以下方法解决了此问题:
计数器=0
对于$(gsutil ls-r gs://test-lab-12345-67890/***.xml | tail-3)中的路径
计数器=$((计数器+1))
gsutil-mcp-r-U$path~/localpath
mv~/localpath/test\u result\u 0.xml~/localpath/test\u result\u$counter.xml
完成
我试图利用改进您的解决方案。
检查你是否喜欢这种解决方案,我不知道你是否认为它更“优雅”:
在我的测试环境中,使用与您类似的文件和文件夹结构
p.S.我没有使用您在解决方案中使用的许多GSUTIL标志来提高可读性,但是如果您认为需要,可以添加它们。一些观察。首先,消息顶部列出的路径都是相同的。其次,在$(“
…
”)构造中,shell将构造“…”字符串,然后尝试执行它。可能从一个gsutil cp-r开始到一个本地目录,并在本地进行重命名。谢谢-我得到了它并将发布答案
gsutil ls -r gs://test-lab-12345-67890/**/test_result_* | awk -F"/" {'system("gsutil cp "$0" ~/localpath/"$6)'}