有这么一个需求,需要从若干个apache虚机配置文件中删除一段内容,类似下面这种

<VirtualHost *>        ServerName abc.com        DocumentRoot /home/apache/abc        CustomLog logs/abc.com-access_log combined</VirtualHost>

思路:以ServerName为中心,删除上面的一行,再删除从ServerName到</VirtualHost>之间的内容即可。

脚本如下:

#! /bin/sh# by logo32.iteye.com# delete domain from *.conf

Dir="/usr/local/apache2/conf"cd $Dirls *.conf | while read filedo con=`grep 'ServerName abc.com' $file | wc -l`    if [ $con -gt 0 ];then        echo "delete domain in this file : $Dir/$file"      sed -i -e :a -e '$!N;s/.*\n\(.*ServerName abc.com\)/\1/;ta' -e 'P;D' $file        sed -i '/ServerName abc.com/,/\/VirtualHost/d' $file    else      echo "======== no change for file : "$file  fidone

其中最重要的两条语句
1、删除指定行的上一行
sed -i -e :a -e '$!N;s/.*\n\(.*ServerName abc.com\)/\1/;ta' -e 'P;D' $file
2、删除指定字符串之间的内容
sed -i '/ServerName abc.com/,/\/VirtualHost/d' $file

sed删除指定行的上一行相关推荐

  1. sed删除匹配行的上一行和下一行

    1.删除匹配行的上一行和下一行: sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' file 2.sed中使用变量,删除匹配行的上一行和下一行: ...

  2. 使用sed删除匹配行的上一行和下一行

    1.删除匹配行的上一行和下一行: sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' file 2.sed中使用变量,删除匹配行的上一行和下一行: ...

  3. Linux shell 用sed删除第一行、最后一行或增加删除某行

    1.删除文档的第一行 sed -i '1d' <file> 2.删除文档的最后一行 sed -i '$d' <file> 3.在文档指定行中增加一行 例如文档如下: echo ...

  4. linux sed删除指定行_shell三剑客之sed!

    背景 sed(Stream Editor 流编辑器),作为三剑客的一份子,主要的功能有增删改查. 为什么称之为"流"编辑器呢? 大家知道:在Linux文件系统中,一切都可以作为文件 ...

  5. pandas 如何删掉第一行_pandas删除指定行详解

    pandas删除指定行详解 在处理pandas的DataFrame中,如果想像excel那样筛选,只要其中的某一行或者几行,可以使用isin()方法来实现,只需要将需要的行值以列表方式传入即可,还可传 ...

  6. sed 删除/增加文件的某一行

    sed 删除/增加文件的某一行: sed -i '6d' file.txt, 删除的是第6行的内容 1.删除文档的第一行 sed -i '1d' file.txt 2.删除文档的最后一行 sed -i ...

  7. c语言从文件删除指定行,C++操作文件行(读取,删除,修改指定行)

    /******************************************************** Copyright (C), 2016-2018, FileName:main Au ...

  8. python删除第一行_python3.7 openpyxl 删除指定一列或者一行的代码

    python3.7 openpyxl 删除指定一列或者一行 # encoding:utf-8 import pandas as pd import openpyxl xl = pd.read_exce ...

  9. sed 删除匹配行的前后行

    2019独角兽企业重金招聘Python工程师标准>>> 删除匹配行的前后行 删除匹配行的下一行 sed -ne 'p;/niyaopipeideneirong/n' nidewenj ...

最新文章

  1. OpenResty学习中的几个小例子汇总
  2. get_headers()请求https报错解决思路
  3. 计量经济学建模_不了解计量经济学的前世今生,怎么能学会他
  4. python求点到曲线距离_Python。如何从点和偏移距离的x,y列表中获取偏移样条曲线的x,y坐标...
  5. 解决 pandas 读取数据时内存过大的问题
  6. 中国医科大学计算机应用基础本科在线作业,中国医科大学《计算机应用基础(本科)》在线作业.doc...
  7. zoj 3791 An Easy Game
  8. POJ 1742 Coins
  9. access 如何使用dolby_Access/VBA/Excel-Access表及字段创建-03
  10. 脉脉第一干货贴,互联网职场那点事,关于面试、绩效、晋升、职业规划。
  11. Linux编程(10)_进程通信
  12. STC51单片机-实验开发装置仿真-物联网应用系统设计
  13. 大连最快的dns服务器设置,大连联通50m宽带,本地dns
  14. python_(1)_向量运算
  15. 华为防火墙忘记密码,使用console口更改密码
  16. 404报错:The origin server did not find a current representation for the target resource解决的两种办法
  17. ANSYS fluent
  18. 判断一个单链表是否有环,若有,找出环的入口节点
  19. “玉出东方”——汉代错金稀有玉器数字藏品即将发售!
  20. 怎么确定K均值聚类中的K(基于matlab)

热门文章

  1. 【帝国CMS】输出带序号的列表(数字排序适用于排行榜)
  2. FreeFileSync + Windows任务计划程序 实现自动备份功能
  3. 农业生产适宜性评价之气候资源评价算法
  4. 爱拼车退出市场 有感
  5. 基于IE浏览器的色情图片过滤器的设计和实现
  6. 如花美眷,终敌不过似水流年
  7. java 静态常量定义_Java常量定义需要注意事项及static作用(复习)
  8. wordpress403_如何修复WordPress中的403禁止错误
  9. 孔雀为什么开屏?——对《孔雀》的精神分析
  10. [N1盒子] 利用hostapd启动802.11ac 5G无线AP wifi热点 二级路由 桥接