首页 > 解决方案 > 如何替换 GCP Cloud Storage 中文件名中的所有空格?

问题描述

我在 GCP 云存储上有一个存储桶,我想将文件名中包含空格的所有文件重命名为用连字符 (-) 删除空格的名称。

我尝试了类似的东西

gsutil ls gs://<bucket>/<folder_with_the_files_to_rename>/ | sed 's/ /-/g/gsutil mv & \1/'

不幸的是,我无法让 sed 命令工作来替换空格,然后使用 gsutil mv 命令实际重命名文件。

有人能帮我吗?

标签: bashgoogle-cloud-platformsedgoogle-cloud-storagegsutil

解决方案


-如果您需要用您获得的某些文件名中的任何空格替换任何空格gsutil ls gs://<bucket>/<folder_with_the_files_to_rename>/,您可以使用

gsutil ls gs://<bucket>/<folder_with_the_files_to_rename>/ | \
  while read f; do
    gsutil -m mv "$f" "${f// /-}";
  done;

gsutil mv命令移动/重命名文件,并且${f// /-}是一种变量扩展语法,其中每个空格都替换为-//代表所有出现)。因此,您不需要sed在这里。


推荐阅读