当前位置: 首页 > 知识库问答 >
问题:

Amazon S3文件名:替换所有文件的双倍空格

宰父玄天
2023-03-14

我在Amazon S3上有一个存储桶,其中有数千个文件的名称中包含双空格。

如何用一个空格替换所有的双空格?

像:folder1/folder2/filename.pdffolder1/folder2/filename.pdf

共有2个答案

寿鸣
2023-03-14

根据john rotenstein的想法

我构建了一行bash命令

aws s3 ls  --recursive s3://bucket-name | cut -c32- | grep "\/.*  .*" | (IFS='' ; while read -r line ; do aws s3 mv  s3://bucket-name/"$line"  s3://bucket-name/$(echo "$line" | xargs)  --recursive; done) 
  • 获取存储桶的列表路径
潘志国
2023-03-14

选项1:使用电子表格

我有时使用的一种“作弊方法”是创建电子表格,然后生成命令:

  • 提取具有双空格的所有文件的列表:
aws s3api list-objects --bucket bucket-name --query 'Contents[].[Key]' --output text | grep '\ \ ' >file_list.csv
  • 在Excel中打开文件
  • 在B列中编写一个公式,用于创建aws s3 mv命令:
="aws s3 mv 's3://bucket-name/"&A1&"' 's3://bucket-name/"&SUBSTITUTE(A1,"  "," ")&"'"
  • 通过复制输出并在终端中运行它来测试它
  • 如果有效,复制到其他行,将所有命令复制并粘贴到外壳脚本中,然后运行外壳脚本

选项2:编写脚本

或者,您可以用您最喜欢的语言(例如Python)编写一个脚本,它将:

  • 列出桶
  • 循环遍历每个对象
  • 如果对象Key具有双空格:
    • 将对象复制到新Key
    • 删除原始对象

 类似资料:
  • 问题内容: 我需要使用文件夹中文件的所有名称创建一个列表。 例如,如果我有: 我想将它们存储为 with 作为值。 用Java做到最好的方法是什么? PS:我在Mac OS X上 问题答案: 你可以这样做: 你只想获取JPEG文件还是所有文件?

  • 问题内容: 谁能推荐一种安全的解决方案,从给定的根目录开始,用文件名和目录名中的下划线递归替换空格?例如: 变成: 问题答案: 使用(aka )这是一个Perl脚本,可能已经在您的系统上。分两个步骤进行: 基于 Jürgen的 回答,并且能够使用(Perl脚本)的“ Revision 1.5 1998/12/18 16:16:31 rmb1”版本在一个绑定中处理多层文件和目录:

  • 我正在尝试用SCP复制本地网络中的文件。它在没有空格的文件名中工作得很好,但在使用时会崩溃。我试着把“”替换成“\”作为这个例子,但它不起作用。下面是我的代码: 如何修复此问题?谢谢

  • 问题内容: 我正在尝试编写脚本,将大照片裁剪并调整为高清壁纸。 但是该脚本似乎在文件名中带有空格的问题(例如Tumble Weed.jpg)。我怎样才能解决这个问题? 问题答案: 首先,您不需要。通过在backtics中使用,您可以使bash隐式地将字符串解析为一个列表,该列表按空格分隔。而是让bash生成列表并将其分离,而无需进行此类怪癖: 另外,您需要将所有用法都括在引号中,以使bash整体上

  • 本文向大家介绍Python替换文件中的文本,包括了Python替换文件中的文本的使用技巧和注意事项,需要的朋友参考一下 例子            

  • 我试图在一个特定文件夹中保存多个图像第一个图像保存正确,但下一个图像只是替换第一个图像。如何保存多个图像?如何动态命名并使用相同的名称保存图像,但使用不同的扩展名,如image、image1、image2。。。下面是我的代码