使用find命令和regex查找文件名,运行不正常

时间:2014-04-24 16:18:11

标签: regex unix amazon-s3 find samba

我们有一个备份到S3存储桶的Samba服务器。来发现大量文件名包含不适当的字符,AWS CLI不允许传输这些文件。使用"最坏的罪犯"我构建了一个快速的正则表达式检查,在rubular中针对另一个文件名进行测试,以尝试生成需要修复的文件列表:

([中文网页我们的团队孙é¹â€“¦]+)

我正在运行的命令是:

find . -regextype awk -regex ".*/([中文网页我们的团队孙é¹â€“¦]+)"

这会返回一小部分包含上述字符串的文件,而不是整个名称中包含的单个字符。这让我相信我的正则表达式不正确或者字符列表的格式有问题。我尝试了类型emacs和egrep,因为它们似乎与我在Unix环境之外使用的正则表达式最相似而没有运气。

我的测试文件名是:this-is-my€™s'-test-_ folder-name.,根据我的rubular测试,应该返回,但不是。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的正则表达式.*/([中文网页我们的团队孙é¹â€“¦]+)需要斜杠后面的一个特殊字符,而您的测试文件不会以其中一个字符开头。

您可以尝试更类似.*[中文网页我们的团队孙é¹â€“¦]+.*的内容。