zoukankan      html  css  js  c++  java
  • 相同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的……..
  • 相关阅读:
    css如何设置div中的内容垂直居中?
    有哪些sql优化工具
    XSS攻击
    java的HashSet 原理
    复杂度O(n)计算
    Kubernetes(K8s)基础知识(docker容器技术)
    Golang glog使用详解
    教你如何找到Go内存泄露【精编实战】
    Linux生产环境上,最常用的一套“AWK“技巧【转】
    Go 程序的性能监控与分析 pprof
  • 原文地址:https://www.cnblogs.com/jasy/p/15665537.html
Copyright © 2011-2022 走看看