zoukankan      html  css  js  c++  java
  • Linux shell multifile content replace with sed

    #!/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 "".*"" > SimpChinese
    
    while read chinese
    do
    
        # 获取中文对应的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.txt
    
    done < SimpChinese
    
    # 将有些不在json键值对里的中文翻译加入translate.txt中
    cat manualTranslate.txt >> translate.txt
    
    while 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}</" rootfs/index.htm
        sed -i -e "s/>s*${chinese}[::!!??]s*</>${english}</" rootfs/set.htm
        sed -i -e "s/>s*${chinese}[::!!??]s*</>${english}</" rootfs/html/*
    
    done < translate.txt
    
    
    # 部分English.txt
    # {
    # "Right Limit" : "Set Right Limit",
    # "Set Failed!": "Failed to set!",
    # "Ok" : "Ok",
    # "Cancel" : "Cancel",
    # "Set Path" : "StoragePath",
    # "Set PTZ" :" PTZ Settings ",
    # "Auto-Scan" : "Scan",
    # "Left Limit": "Set Left Limit",
    # "Add" : "Add ",
    # "Preset": "Preset",
    # "Path" : "Path",
    # "Browse":"Choose",
    # "Set Succeeded!" :"Set successfully!",
    # "Delete" : "Delete"
    # }
    
    
    # 部分SimpChinese.txt
    # {
    # "Set Path" : "设置存储路径",
    # "Path" : "路径",
    # "Browse" : "选择",
    # "Set Succeeded!" : "设置成功!",
    # "Left Limit" : "设置左边界 ",
    # "Right Limit" : "设置右边界 ",
    # "Preset" : "预置点 ",
    # "Cancel" : "取消",
    # "Set PTZ" : "云台设置 ",
    # "Auto-Scan" : "线性扫描 ",
    # "Delete" : "删除 "
    # "Add" : "添加 ",
    # "Set Failed!" : "设置失败!",
    # "Ok" : "确定",
    # }
  • 相关阅读:
    React元素渲染
    初识JSX
    微信小程序复制文本到剪切板
    微信小程序报错request:fail url not in domain list
    小程序,通过自定义编译条件,模拟推荐人功能
    积分抵扣逻辑
    微信小程序 switch 样式
    tomcat 配置开启 APR 模式
    tomcat8 传输json 报错 Invalid character found in the request target. The valid characters are defined in RFC 3986
    c++数组初始化误区
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/4979675.html
Copyright © 2011-2022 走看看