1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > sed mysql配置文件_shell解析my.cnf配置文件

sed mysql配置文件_shell解析my.cnf配置文件

时间:2020-09-28 09:16:58

相关推荐

sed mysql配置文件_shell解析my.cnf配置文件

f配置格式如下

vi f

[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)"/f"

#得到区块数组

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。