Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform gsutil重命名从不同目录复制的文件_Google Cloud Platform_Google Cloud Storage_Gcloud_Gsutil_Google Cloud Sdk - Fatal编程技术网

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

使用bash脚本实现这一点的最佳方法是什么?到目前为止,我有这个,但它不起作用:(

以美元表示的i(“`gsutil ls gs://test-lab-12345-67890 | tail-1`*/*.xml”);do gsutil-mcp-r-U$i~/文档 完成

使用以下方法解决了此问题:

计数器=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)'}