zoukankan      html  css  js  c++  java
  • shell编程sed笔记

    源文件的内容

    <modules>
    <module name="provider">
    <!--发布模式-->
    <bds_mode/>
    <!--发布源-->
    <svn_src_dir>./provider/target/qta-stats.provider/</svn_src_dir>
    <!--发布排除项,以","分隔-->
    <rsync_exclude/>
    <!--发布服务器列表,以","分隔-->
    <server_list>B:l-qta8.h.beta.cn0.com</server_list>
    <!--发布服务器组-->
    <server_listgroup>B</server_listgroup>
    <!--发布目标地址-->
    <rsync_dst>/home/q/www/qta.stats.provider/webapps/ROOT/</rsync_dst>
    <!--部署机端口号-->
    <websrv_port>9026</websrv_port>
    <!--部署类型,可选值nginx, tomcat, static-->
    <websrv_type>tomcat</websrv_type>
    <!--部署机上header路径-->
    <header_path/>
    <!--部署机上footer路径-->
    <footer_path/>
    <!--部署机上header_footer路径-->
    <header_footer_path/>
    <!--发布批次-->
    <batch_num/>
    <num_per_batch/>
    <!--服务名-->
    <service_name/>
    <!--check_url列表,以","分隔-->
    <check_urls>http://127.0.0.1:9026/test.html</check_urls>
    <!--healthcheck根目录-->
    <healthcheck_root>/home/q/www/qta.stats.provider/webapps/ROOT/</healthcheck_root>
    <!--全量同步'y'or增量同步'n', -->
    <full_sync/>
    <!--停止dubbo服务的url-->
    <dubbo_stop_url/>
    <!--是否使用“kill -9”命令强制杀进程-->
    <kill_9/>
    <!--发布时,是否需要先关闭web服务,然后发布成功y后开启web服务, 可选值: y/n-->
    <restart_websrv>Y</restart_websrv>
    <!--发布时是否需要关闭nagios监控, 可选值:y/n-->
    <restart_nagios>N</restart_nagios>
    <!--是否需要踢出负载均衡,可选值:y/n-->
    <restart_healthcheck>N</restart_healthcheck>
    </module>



    shell脚本
    #/bin/bash
    #声明要被替换的字符串 oldParrten
    ="<server_list>.*.com</server_list>" #生命新字符串
    newParrten
    ="<server_list>A:l-qtabeta5.h.cn0.com,B:l-qtabeta6.h.cn0.com,C:l-qtabeta7.h.cn0.com,D:l-qtabeta2.h.cn0.com,E:l-qtabeta3.h.cn0.com,F:l-qtabeta4.h.cn0.com,G:l-qta8.h.beta.cn0.com,H:l-qta9.h.beta.cn0.com,I:l-qta10.h.beta.cn0.com</server_list>"#替换(注意是两个sed,有一个&&符号,表示同时满足) sed -i "s#$oldParrten#$newParrten#g" $1 && sed -i "s#<server_listgroup>.*</server_listgroup>#<server_listgroup>C</server_listgroup>#g" $1 #获取上边sed&&sed执行的结果,并给出执行结果
    if [ $? -eq 0 ];then echo "$1's server_list replace over!" else echo "I'm sorry, the operation failed!" fi

    需求是替换xml文件里边的两行,但是有100多个文件,就想到了用sed进行替换。

    然后是循环  sh 脚本 文件,进行替换。

  • 相关阅读:
    有关同时包含<winsock2.h>与<windows.h>头文件的问题
    如何使用微软提供的TCHAR.H头文件?
    下面的程序在VC6通过,在VS2008不能,错误信息都是“不能将参数……从const char[]转换为LPCWSTR”
    Android开发学习日志(四)
    爬虫开发(一)
    java集合源码详解
    Paxos算法
    linux 常用命令
    Bitmap的原理和应用
    Flink Checkpoint 问题排查实用指南
  • 原文地址:https://www.cnblogs.com/liuweiqiang/p/4147079.html
Copyright © 2011-2022 走看看