sed mysql配置文件_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
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
do
echo ${g_names[$j]}" "${g_values[$j]}
done
done
總結
以上是生活随笔為你收集整理的sed mysql配置文件_shell解析my.cnf配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中值滤波介绍_Python
- 下一篇: java dispatchevent_j