zoukankan      html  css  js  c++  java
  • shell解析my.cnf配置文件

    my.cnf配置格式如下

    vi my.cnf
    [client]
    port=3306
    socket=/tmp/mysql.socket

    [mysqld]
    port=3306
    server-id=1
    datadir=/usr/local/mysql/data

    [mysqld_safe]
    port=3306

    more parseMy.sh

    #!/bin/bash
    cnf=$(cd `dirname $0`;pwd)"/my.cnf"

    #得到区块数组
    g_sec=(`sed -n '/[*]/p' $cnf |grep -v '^#'|tr -d []`)
    #sed -n '/[*]/p' 得到包含[*]的行
    #grep -v '^#' 去掉#打头的行
    #tr -d [] 去掉[]
    #g_sec=(client mysqld mysqld_safe)

    for ((i=0;i<${#g_sec[@]};i++))
    do
    echo "解析No."$i
    sec_name=${g_sec[i]}
    g_names=(`sed -n '/['$sec_name']/,/[/p' $cnf|grep -Ev '[|]|^$|^#'|awk -F '=' '{print $1}'`)
    #sed -n '/['$sec_name']/,/[/p' 得到从[$sec_name]到临近[的所有行
    #grep -Ev '[|]|^$|^#' 去掉包含[或]的行 去掉空行 去掉#打头的行
    #awk -F '=' '{print $1}'`得到=号前面字符

    g_values=(`sed -n '/['$sec_name']/,/[/p' $cnf|grep -Ev '[|]|^$|^#'|awk -F '=' '{print $2}'`)
    #awk -F '=' '{print $1}'`得到=号后面字符

    for ((j=0;j<${#g_names[@]};j++))
    do
    echo ${g_names[$j]}" "${g_values[$j]}
    done

    done

  • 相关阅读:
    每周总结03
    Servlet2
    每周总结02
    周总结4
    河北省重大需求征集系统每日进度6
    周总结3
    hadoop命令
    复习uml
    周总结2
    河北省重大需求征集系统每日进度5
  • 原文地址:https://www.cnblogs.com/janehoo/p/7612497.html
Copyright © 2011-2022 走看看