本帖最后由 ksla 于 2023-7-3 15:09 编辑
- ## filename: transPY.sh [gamelist.xml的路径,默认为当前路径下的gamelist.xml]
- ## 使用举例:./transPY.sh /path/to/gamelist.xml
- ## 功能:为gamelist.xml中的中文游戏名生成拼音首字母后缀
- ## 举例:J-寂静岭 转换为 J-寂静岭[jjl]
- ## 需要安装nodejs
-
- gamelistpath="${1:-gamelist.xml}"
- echo "处理文件:""${gamelistpath}"
- # 修改编码为utf-8,以支持中文, macos请使用gsed,安装方法:brew install gsed
- sed -i '1c \<?xml version="1.0" encoding="utf-8"?>' "${gamelistpath}"
- gameList=`xml sel -t \
- --value-of '//gameList/game/sortname' \
- --nl "${gamelistpath}"`
-
- OLDIFS="$IFS" #备份旧的IFS变量
- IFS=$'\n' #处理游戏名中带空格的情况
-
-
- # 逐个修改name的值
- for game in ${gameList}
- do
- echo "处理游戏名:"${game}
- if [[ $( echo "${game}" | grep "\[.*\]$" | wc -l ) -eq 0 ]]; then # 防止重复添加
-
- suffixName=$( cd "$(dirname ${BASH_SOURCE})" && py transPinying.py "${game}")
-
- if [[ -n ${suffixName} ]]; then # 有中文才添加
- finalName="${game}""[${suffixName}]"
- echo "添加后:""${finalName}"
- xml ed -L -u \
- "/gameList/game[sortname = \"${game}\"]/sortname" \
- -v "${finalName}" \
- "${gamelistpath}"
- fi
- fi
- done
- IFS="$OLDIFS" #还原IFS变量
复制代码 由于上传大小限制
transPinying.py 文件从这里取
链接:https://pan.baidu.com/s/1P4BydLzZ4lMbRDps0d2YFQ
提取码:kqfl
--来自百度网盘超级会员V1的分享
错误结果:
$ ./transPY.sh gamelist.xml
处理文件:gamelist.xml
处理游戏名:光明之魂
[gmzh]:光明之魂
处理游戏名:幻想传说
[hxcs]:幻想传说
处理游戏名:黄金太阳
添加后:黄金太阳[hjty]
正确结果
$ ./transPY.sh gamelist.xml
处理文件:gamelist.xml
处理游戏名:光明之魂
添加后:光明之魂[gmzh]
处理游戏名:幻想传说
添加后:幻想传说[hxcs]
处理游戏名:黄金太阳
添加后:黄金太阳[hjty]
问题说明:脚本只对最后一个游戏名生效,其它都是失效
感觉是这个变量出错 finalName="${game}""[${suffixName}]"
具体报酬:100元人民币
支付方式:支付宝
请将支付宝手机号私信给我!可用马上打款! |