本文共 1344 字,大约阅读时间需要 4 分钟。
#!/bin/bash# Linux shell multifile content replace with sed# 声明:# 本源代码主要是利用两份(中、英文)具有相同键值对的json数据,对html内的中文进行# 自动化文本替换的代码。## 2015-11-20 晴 深圳 南山平山村 曾剑锋# 得到中文部分sed -n "/\"/p" SimpChinese.txt | grep -Po -e "\"\s?:\s?.*" | grep -Po -e ":\s?.*" | grep -o -e "\".*\"" > SimpChinesewhile read chinesedo # 获取中文对应的id部分 id=`grep "$chinese" SimpChinese.txt | grep -o -e "^.*:" | grep -o -e "\".*\"" | head -n 1` # 由id获取英文的部分 english=`grep "$id" English.txt | grep -Po -e "\"\s?:\s?.*" | grep -Po -e ":\s?.*" | grep -o -e "\".*\"" | head -n 1` # 剔除双引号 chinese=${chinese:1:-1} english=${english:1:-1} # 去掉两边的空格 #chinese=`echo $chinese | sed "s/ *$//g"| sed "s/^ *//g"` # 追加到文件末尾 echo "$chinese===$english" >> translate.txtdone < SimpChinese# 将有些不在json键值对里的中文翻译加入translate.txt中cat manualTranslate.txt >> translate.txtwhile read ChEn do # 获取中文,由于有些中文字符串有'/',并对其进行处理,主要是为了处理sed中'/'的特殊性 chinese=`echo $ChEn | grep -o "^.*===" | sed "s/===//" | sed "s/ *$//g" | sed "s/^ *//g" | sed "s^\/^\\\\\\\\/^g"` english=`echo $ChEn | grep -o "===.*$" | sed "s/===//" | sed "s^\/^\\\\\\\\/^g"` # 匹配并修改html页面,[::!!??]是根据html中字符串的特征添加的内容 sed -i -e "s/>\s*${chinese}[::!!??]\s*${english} \s*${chinese}[::!!??]\s*${english} \s*${chinese}[::!!??]\s*${english}
转载地址:http://smgia.baihongyu.com/