linux下shell脚本如何解析类似如下配置文件,请写出解析其通用脚本。特别指出DB_CONFIG这一项是多行的,由于输入的原因故呈现给您的是单行的。 [MYSQL] DB_HOST=192.168.0.1 DB_PORT=3306 DB_USER=root DB_PASSWD=mysql1234 DB_NAME=system_manager1 DB_CONFIG=./configure --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \
时间: 2024-03-07 15:50:50 浏览: 87
shell 创建及解析脚本
可以使用`awk`命令来解析这个配置文件。下面是一个通用的脚本,可以解析类似的配置文件,其中`DB_CONFIG`项支持多行输入。
```bash
#!/bin/bash
config=$1
awk -v RS='' -v FS='\n|=' -v OFS='=' '
{
if ($1~/\[.*\]/) {
section=substr($1, 2, length($1)-2)
} else {
gsub(/ /, "", $1)
if (NF > 1) {
gsub(/\\/, "", $2)
if ($1 == "DB_CONFIG") {
db_config=$2
while (getline > 0) {
gsub(/\\/, "", $0)
db_config=db_config $0
if ($0 !~ /\\$/) {
break
}
}
print section, $1, db_config
close(FILENAME)
} else {
print section, $1, $2
}
}
}
}
' $config
```
使用方式如下:
```bash
bash parse_config.sh config.txt
```
其中`config.txt`是待解析的配置文件,执行后会输出解析结果。
阅读全文