一、初衷:
一些开源软件的配置文件中识别区分的部分用英文,那么我们在批量生成配置文件的时候,可以从CMDB导入汉字(idc_name),
然后将它转换成拼音,再或者拼接上IP地址,以便更准确的识别。例如:Smokeping的Targets配置文件,如下:
+telcom menu = 中国电信 title = telcom ++yunfuxinxingshuangxian-01-61 menu = 云浮新兴双线-01 title = 61.11.11.11 host = 61.11.11.11
二、方法:
我们可以调用Python的pypinyin库,来解决汉字转成拼音的问题。
>>> import pypinyin
>>> from pypinyin import pinyin, lazy_pinyin
>>> lazy_pinyin(u'云浮新兴双线-01')
[u'yun', u'fu', u'xin', u'xing', u'shuang', u'xian', u'-01']
>>> ''.join(lazy_pinyin(u'云浮新兴双线-01'))
u'yunfuxinxingshuangxian-01'
>>> ''.join(lazy_pinyin(u'云浮新兴双线-01'))+'-'+'61.11.11.11'.split('.')[0]
u'yunfuxinxingshuangxian-01-61'
另外:你将汉字转成了拼音写入配置文件,可能还需要拼音转成汉字,用来显示报表等。
那么你可以读取配置文件,取相应的menu(汉字部分)。这里仅提供一种解决思路,具体看实际需求。
grep -n1 yunfuxinxingshuangxian /etc/smokeping/config.d/Targets |grep menu|awk '{print $NF}
附:汉字拼音转换工具(Python版)官方网址:http://pypinyin.readthedocs.org/en/master/