如何替换 GCP 云存储中文件名中的所有空格?

How to replace all white spaces in file names in GCP Cloud Storage?

我在 GCP 云存储上有一个存储桶,我想将文件名中带有白色 space 的所有文件重命名为白色 space 被连字符删除的名称(- ).

我试过

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

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

有人可以帮助我吗?

如果你需要用-替换你用gsutil ls gs://<bucket>/<folder_with_the_files_to_rename>/得到的一些文件名中的任何space,你可以使用

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

gsutil mv command moves/renames 文件,而 ${f// /-} 是一种变量扩展语法,其中每个 space 替换为 -//代表所有出现)。因此,这里不需要sed