鉴于由双字节/全角数字和空格(有一些半角数字和下划线一起)的文件名的目录中,如何可以转换所有的数字和空间以单字节字符?

例如,此文件名由双字节数,后跟一个双字节空间,其次是一些单字节字符的:

2 2_3.ext

和我想将其更改为所有单字节像这样:

2 2_3.ext

我试过 convmv 从UTF8到ASCII转换,但下面对所有文件信息出现:

“ASCII不涵盖所有所需的字符:文件名

有帮助吗?

解决方案 3

感谢您快速作出回应,bmargulies和bobince。我发现了一个Perl模块,的Unicode ::日本,这有助于把工作做好。这里是我做了(从的该示例中)到文件名转换在当前目录中从全宽为半角字符:

#!/bin/bash
for file in *;do
newfile=$(echo $file | perl -MUnicode::Japanese -e'print Unicode::Japanese->new(<>)->z2h->get;')
test "$file" != "$newfile" && mv "$file" "$newfile"
done
scroll top