使用awk读取ini配置文件
配置文件conf.ini
[server] ip = 10.10.10.10 name = test_name
下面awk命令的功能为打印出来[server]区域,ip的值
awk -F'=' -v section=[server] '$0 == section {flag=1;next} $0 ~ /\[/ {flag=0;next} flag && $1 ~ /^ *ip $/ {print $2}' /opt/conf.ini
说明如下
awk -F'=' # 指定每行的分隔符为=,分隔符左侧为$1,右侧为$2 -v section=[ip] #定义变量section,值为[ip] ' # 单引号内为判断逻辑和打印内容 $0 == section {flag=1;next} # $0表示当前行,next表示不再进行后续判断,直接处理下一行,flag置为1表示找到了要处理的区域,==表示值相等 $0 ~ /\[/ {flag=0;next} # 判断逻辑为,当前行为[开头时,意味着遇到了新的区域,将flag置为0,~表示使用正则表达式 flag && $1 ~ /^ *ip *$/ {print $2} # 判断逻辑为找到了要处理的区域,而且字段名称为ip,打印分隔符右侧的内容 ' /opt/conf.ini
awk支持的正则表达式元字符

                    
                
                
            
        
浙公网安备 33010602011771号