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

本文详细介绍了MySQL配置文件my.cnf的格式,并提供了一个用于解析my.cnf的bash脚本示例。脚本通过sed、grep和awk等工具,将配置文件按区块拆分并提取键值对,对于理解MySQL配置管理和自动化处理配置文件非常有帮助。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值