linux sed命令的用法

本文介绍了如何使用sed命令在Linux环境中操作文本文件,特别是针对XML或HTML配置文件,演示了删除关键词之间内容但保留关键词,以及替换多个关键词和在指定位置插入文件内容的操作。这些技巧对于日常的文件维护和自动化脚本编写非常实用。
摘要由CSDN通过智能技术生成

删除文件中两个关键词之间的内容包括关键词 :

sed 's/^.*配置开始.*$/,/^.*配置结束.*$/d' a.txt
[las@master master]$  cat a.txt 
<!--配置开始-->
<property name="haController">                      
<!--配置结束-->
[las@master master]$ sed 's/^.*配置开始.*$/,/^.*配置结束.*$/d' a.txt
[las@master master]$

但是我们并不想删除关键词,用下面这个命令 :

sed '/^.*配置开始.*$/,/^.*配置结束.*$/{/^.*配置开始.*$/!{/^.*配置结束.*$/!d}}' a.txt 
[las@master master]$  cat a.txt 
<!--配置开始-->
<property name="haController">                      
<!--配置结束-->
[las@master master]$ sed '/^.*配置开始.*$/,/^.*配置结束.*$/{/^.*配置开始.*$/!{/^.*配置结束.*$/!d}}' a.txt 
<!--配置开始-->
<!--配置结束-->
[las@master master]$

替换文件中的多个关键词, 将修改后的文件写出到新文件中 :

sed -e "s/替换1/第一个/g" -e "s/替换2/第二个/g"  a.txt > b.txt
[las@master master]$ cat a.txt
替换1
替换2
[las@master master]$ sed -e "s/替换1/第一个/g" -e "s/替换2/第二个/g"  a.txt > b.txt   
[las@master master]$ cat b.txt 
第一个
第二个
[las@master master]$

将b.txt的文件内容插入到a.txt文件指定关键词位置后面

sed -i '/^.*替换.*$/r b.txt' a.txt 
[las@master master]$ cat a.txt 
替换
[las@master master]$ cat b.txt 
第一个
第二个
[las@master master]$ sed -i '/^.*替换.*$/r b.txt' a.txt
[las@master master]$ cat a.txt 
替换
第一个
第二个
[las@master master]$ 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值