在文件名中查找带有非ascii字符的文件

时间:2012-05-29 09:19:42

标签: find non-ascii-characters

我有没有办法find使用非ascii字符的文件?我当然可以使用管道 - 并使用perl过滤文件,但为了提高效率,我想在find中设置它。我尝试了以下方法:

find . -type f -name '*[^[:ascii:]]*'

根本不起作用。

修改

我现在正在尝试使用

find . -type f -regex '.*[^[:ascii:]].*'

这是一个emacs正则表达式,它有[:ascii:]类。但我试图使用的表达方式不起作用。

编辑2

LC_COLLATE=C find . -type f -regex '.*[^!-~].*'

将文件与非ascii字符匹配(完整的巫术......)。但也匹配名称中带有空格的文件。

1 个答案:

答案 0 :(得分:2)

在默认和posix扩展模式下,这似乎对我有用:

LC_COLLATE=C find . -regex '.*[^ -~].*'

但是,可能存在与语言环境相关的问题,并且我没有大量的非ascii文件名来测试它,但它会捕获我所拥有的那些。