【shell】删除samba配置文件中某一section的配置

 本脚本用于删除ini格式中某段section的配置。原理是通过计算section所在的开始行号和结束行号,然后传给sed命令,直接删除

onecloud:~:# cat replace.sh
## 作用:删除ini中某一section的配置
##

section="tobedeleted"
#获取当前配置起始行号
declare -i LN
LN=$( cat smb.conf | grep -n "\["${section}"\]" | cut -d: -f1 )
echo "$LN"
#发现已有配置,希删除
if [ $LN -gt 0 ];then
        #计算距离下一条配置相差的行数
        declare -i DIFFNUM
        DIFFNUN=$( sed -n "$(( $LN + 1 )),$ p" smb.conf | grep -n "\[.*\]" | cut -d: -f1 | head -n 1 )
        if [ $DIFFNUM -gt 0 ];then
                #将要删除的截止行数
                declare -i NEXTLN
                NEXTLN=$(( $LN + $DIFFNUM - 1 ))
                echo $NEXTLN
                #删除当前配置
                sed "$LN,$NEXTLN d" smb.conf
        else
                #应该是最后一段section,直接删到行尾
                echo "行尾"
                sed "$LN,$ d" smb.conf
        fi
fi

#如果要在删除后,要原有位置插入新的配置,可以这么写:
sed '${NEXTLN}i two lines \
to be inserted!
' smb.conf
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值