linux读取配置文件每一行,linux Shell 读取和写入配置文件

配置文件

[comon]

ids=com1,com2,com3

files=profilefile

files= weswff

[com1]

key="name"

file="test"

[com2]

key="name1"

file="test"

[com3]

key="name2"

file="test"

[comon]

file=ssss

file3=iiiii

files= best

[comon]

脚本

#!/usr/bin/bash

getLine(){

file=$1

section=$2

option=$3

tl=$(cat $file | wc -l)

lines=$(sed -n -e "/$section/=" $file)

tn=0

lindedata=''

for i in $lines

do

nlines=$(cat $file | awk -v i=$i '/^\[.*\]$/ {if(NR>i)print NR}')

nline=$(echo $nlines | awk '{print $1}')

if [ -n $nline ]

then

sl=$((i+1))

el=$((nline-1))

if [ $el -eq -1 ]

then

el=$tl

fi

#echo $tl $nline

if [ $((tl-nline)) -ge 0 ]

then

rs=$(cat $file | head -n $el | tail -n "+"$sl | grep -n '^'$option | tail -n 1)

#echo $rs

flag=$(awk -v a="$rs" -v b=":" 'BEGIN{print index(a,b)}')

if [ $flag -ne 0 ]

then

px=$(echo $rs | awk -F ':' '{print $1}')

tn=$((i+px))

fi

fi

fi

done

return $tn

}

getConfig(){

file=$1

section=$2

option=$3

getLine $file $section $option

line=$?

#echo $line

content=$(cat $file | awk '{if(NR=="'$line'"){print}}')

#echo $content

value=$(echo $content | awk -F '=' '{print $2}')

#echo $value

}

alterConfig(){

file=$1

section=$2

option=$3

rvalue=$4

getConfig $file $section $option

str=$line's/'$value'/'$rvalue'/'

sed -i "$str" $file

}

getConfig test.conf comon files

echo $line $value

alterConfig test.conf comon files best

#echo $line $value

getConfig test.conf comon files

echo $line $value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值