Ado*_*obe 0 find non-ascii-characters
有没有办法可以find处理包含非 ASCII 字符的文件?我当然可以使用管道 - 并使用 perl 过滤文件,但为了提高效率,我想将其全部设置为find. 我尝试了以下方法:
find . -type f -name '*[^[:ascii:]]*'
Run Code Online (Sandbox Code Playgroud)
它根本不起作用。
编辑:
我现在正在尝试利用
find . -type f -regex '.*[^[:ascii:]].*'
Run Code Online (Sandbox Code Playgroud)
它是一个 emacs 正则表达式并且有[:ascii:]类。但我试图使用的表达方式不起作用。
编辑2:
LC_COLLATE=C find . -type f -regex '.*[^!-~].*'
Run Code Online (Sandbox Code Playgroud)
匹配带有非 ASCII 字符的文件(一个完整的巫术......)。但也匹配名称中带有空格的文件。
小智 6
这似乎在默认模式和 posix 扩展模式下都对我有用:
LC_COLLATE=C find . -regex '.*[^ -~].*'
Run Code Online (Sandbox Code Playgroud)
不过,可能存在与语言环境相关的问题,而且我没有大量的非 ASCII 文件名语料库来测试它,但它捕获了我拥有的文件名。