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

  • 相关阅读:
    java四种数组排序
    hadoop安装及配置
    Talend初试,实现定时同步
    JAVA语言概述和基本语法知识点
    Maven项目资源文件打包错误
    Ajax同步和异步
    Nginx + Tomcat 负载均衡
    PLSQL安装配置
    WebStorm 设置光标位置不随意停靠
    Hello Node.js
  • 原文地址:https://www.cnblogs.com/janehoo/p/7612497.html
Copyright © 2011-2022 走看看