zoukankan      html  css  js  c++  java
  • shell读取或者修改ini文件

    cfg_find(){
        file_name=$1
        labelname=$2
        key=$3
        labelline=$(grep -n "^[.*]$" $file_name | awk -F ':' '{print $1}')
        lineinfo=$(grep -n "^[.*]$" $file_name | awk -v labelname="$labelname" -F ':' '{a[NR]=$1;b[NR]=$2} END{for(i=0;i<length(b);i++){if(b[i-1]==labelname){print a[i-1],a[i]}}}')
        lable_lines=()
        total_line=$(cat $file_name | wc -l)
        for line in $lineinfo
        do
            start_line=$(echo $line | awk '{print $1}')
            end_line=$(echo $line | awk '{print $2}')
            if [ -z $end_line ]
            then
                $end_line=$total_line
            fi
            if [ ! -z $start_line ] || [ ! -z $end_line ]
            then
                keyinfo=$(cat $file_name | head -n $(($end_line-1)) | tail -n "+"$start_line | grep -n $key | tail -n 1 | sed 's/ //g')
                sub_line=$(cat $keyinfo | grep -n "^"$key"=" | awk -F ':' '{print $1}')
                if [ ! -z sub_line ]
                then
                    $lable_lines[${#lable_lines[@]}]=$(($start_line+$sub_line-1))
                fi
            fi
        done
        return $lable_lines
    }
    
    cfg_get(){
        file_name=$1
        labelname=$2
        key=$3
        cfg_find $file_name $labelname $key
        lable_lines=$?
        if [ ${#lable_lines[@]} -eq 0 ]
        then
            return ''
        else:
            ln=$lable_lines[${#lable_lines[@]}]
            key_value=$(cat $file_name | sed -n $ln"p")
            value=$(echo $key_value | awk -F '=' '{print $2}')
            return $value
        fi 
    }
    
    cfg_modify(){
        file_name=$1
        labelname=$2
        key=$3
        new_value=$4
        cfg_find $file_name $labelname $key
        lable_lines=$?
        if [ ${#lable_lines[@]} -eq 0 ]
        then
            return 0
        else:
            ln=$lable_lines[${#lable_lines[@]}]
            key_value=$(cat $file_name | sed -n $ln"p")
            key=$(echo $key_value | awk -F '=' '{print $1}')
            new_key_value=$key"="$new_value
            sed '"$ln"c "$new_key_value"' $file_name
            sed -n '"$ln"p' $file_name
            return 1
        fi
    }
    

      

  • 相关阅读:
    OC与JS交互之WKWebView
    iOS下JS与OC互相调用(三)--MessageHandler
    html base64 img 图片显示
    Vue中img的src属性绑定与static文件夹
    XML 树结构
    XML 用途
    XML 简介
    JS Window对象
    JS Math对象
    JS 字符串操作
  • 原文地址:https://www.cnblogs.com/navysummer/p/11679211.html
Copyright © 2011-2022 走看看