Warm tip: This article is reproduced from serverfault.com, please click

bash-如何替换GCP Cloud Storage中文件名中的所有空格?

(bash - How to replace all white spaces in file names in GCP Cloud Storage?)

发布于 2020-11-28 18:23:25

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

我尝试了类似的东西

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

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

有人能帮我吗?

Questioner
nikos
Viewed
12
Wiktor Stribiżew 2020-11-30 23:41:40

如果你需要用-某些文件名替换任何空格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这里。