bash – 如何将文件名从unicode转换为ascii

我在 linux上安装的NTFS分区上有一堆音乐文件,文件名带有unicode字符.我在编写脚本以重命名文件时遇到问题,因此所有文件名都只使用ASCII字符.我认为使用iconv命令应该可以工作,但是我无法转义’mv’命令的字符.

编辑:如果没有unicode字符的直接转换并不重要.我想我只会用“?”代替那些.字符.

解决方法

我不认为iconv有任何角色替换设施.这在 Python中可能有所帮助:

#!/usr/bin/python
import sys

def unistrip(s):
    if isinstance(s,str):
        s = s.decode('utf-8')
    chars = []
    for i in s:
        if ord(i) > 0x7f:
            chars.append(u'?')
        else:
            chars.append(i)
    return u''.join(chars)

if __name__ == '__main__':
    print unistrip(sys.argv[1])

然后打电话给:

$./unistrip.py "yikes_

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...