我有没有办法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字符匹配(完整的巫术......)。但也匹配名称中带有空格的文件。
答案 0 :(得分:2)
在默认和posix扩展模式下,这似乎对我有用:
LC_COLLATE=C find . -regex '.*[^ -~].*'
但是,可能存在与语言环境相关的问题,并且我没有大量的非ascii文件名来测试它,但它会捕获我所拥有的那些。