• 相同xml批量创建替换脚本.sh


    新建1.sh文件,最好是在linux环境下,windows拷过去带中文的会乱码 

    #!/bin/bash
    # Author:Jasy
    # 批量从1文件取主机名作变量并复制和命名新的xml文件,替换xml文件里的空值实际关联资产为该主机名,替换xml记录里的某某服务器为该主机名服务器
    # 注意:1文件一行一个名字,并set ff=unix,源xml文件里的实际关联资产需为空(4个空格),源xml记录的某某服务器统一为1服务器
    
    for name in `cat 1`; do
      cp 07.安全计算环境-服务器和终端-1.xml 07.安全计算环境-服务器和终端-$name.xml
      sed -i "s%    <\/实际关联资产>%$name<\/实际关联资产>%g" 07.安全计算环境-服务器和终端-$name.xml
      sed -i "s%1服务器%$name服务器%g" 07.安全计算环境-服务器和终端-$name.xml
    done

    目录下是这些文件:

     1.sh

     07.安全计算环境-服务器和终端-1.xml作为源xml文件,需要如下设置:

    1、结果记录里涉及到某某服务器统一为1服务器;2、实际关联资产字段的中间为空(默认就是4个空格)

    1文件:

    使用./1.sh执行,大概几秒钟就可以执行完成

    随便找个打开看下,已经替换完成

    在调试脚本出现过几个报错,做个记录:

    1、当sed中有变量时,sed -i 后面需要用两个双引号"括起来(单引号报错)

    2、替换后的变量老是有^M和其他多余字符,是因为windows复制过去的1文件是默认dos格式,需要set ff=unix即可

    3、sh文件有乱码也类似,从windows拷过去的执行会报错,cat看是乱码,基本是中文乱码,需要改成utf-8,执行 iconv -f gbk -t utf8 2.sh >3.sh 这个命令,生成3.sh即可

    奶奶问孙子:4+1等于几 孙子说:等于6-1。 奶奶说:你明明知道答案,为什么不说? 孙子说:年轻人不讲5的……..
  • 相关阅读:
    写在学期将要结尾处
    程序有感
    Python字典操作小汇总
    mysql 乱码解决方案
    公告 百度安家
    本周工作安排
    bind1st/bind2nd
    OpenGL放大缩小实现
    Eclipse安装SVN插件
    QQ也玩命令行
  • 原文地址:https://www.cnblogs.com/jasy/p/15665537.html
Copyright © 2020-2023  润新知