【发布时间】:2014-04-24 16:18:10
【问题描述】:
我们有一个 Samba 服务器正在备份到 S3 存储桶。发现大量文件名包含不适当的字符,AWS CLI 不允许传输这些文件。使用“最严重的违规者”,我构建了一个快速的正则表达式检查,在 rubular 中针对另一个文件名进行了测试,以尝试生成需要修复的文件列表:
([䏿–‡ç½‘页我们的团队å™é¹â€“¦]+)
我正在运行的命令是:
find . -regextype awk -regex ".*/([䏿–‡ç½‘页我们的团队å™é¹â€“¦]+)"
这会按顺序返回包含上述字符串的文件的小列表,而不是整个名称中包含的单个字符。这让我相信要么我的正则表达式不正确,要么字符列表的格式有问题。我尝试了 emacs 和 egrep 类型,因为它们看起来与我在 Unix 环境之外使用的正则表达式最相似,但没有运气。
我的测试文件名是:this-is-my€™s'-test-_ folder-name.,根据我的 rubular 测试,应该返回但不是。任何帮助将不胜感激。
【问题讨论】:
-
如果我在我的系统上创建一个名为
this-is-my€™s的文件,它会创建为this-is-my??s您也可以尝试这样的正则表达式:[^\w -]
标签: regex unix amazon-s3 find samba