我们有一个备份到S3存储桶的Samba服务器。来发现大量文件名包含不适当的字符,AWS CLI不允许传输这些文件。使用"最坏的罪犯"我构建了一个快速的正则表达式检查,在rubular中针对另一个文件名进行测试,以尝试生成需要修复的文件列表:
([ä¸æ–‡ç½‘页我们的团队å™é¹â€“¦]+)
我正在运行的命令是:
find . -regextype awk -regex ".*/([ä¸æ–‡ç½‘页我们的团队å™é¹â€“¦]+)"
这会返回一小部分包含上述字符串的文件,而不是整个名称中包含的单个字符。这让我相信我的正则表达式不正确或者字符列表的格式有问题。我尝试了类型emacs和egrep,因为它们似乎与我在Unix环境之外使用的正则表达式最相似而没有运气。
我的测试文件名是:this-is-my€™s'-test-_ folder-name.
,根据我的rubular测试,应该返回,但不是。任何帮助将不胜感激。
答案 0 :(得分:1)
您的正则表达式.*/([ä¸æ–‡ç½‘页我们的团队å™é¹â€“¦]+)
需要斜杠后面的一个特殊字符,而您的测试文件不会以其中一个字符开头。
您可以尝试更类似.*[ä¸æ–‡ç½‘页我们的团队å™é¹â€“¦]+.*
的内容。