awk读取ini配置文件


一、awk基础

-F 		#指定分割符
print	#打印
$0		#表示整个当前行
$1		#每行第一个字段	(ini分隔符前的key)
$2		#每行第二个字段	(ini分隔符前的value)
-v		#设置变量
//		#匹配代码块
''		#引用代码块

二、读取ini

1. net.ini文件

[NETWORK]
ip=10.1.0.11
mask=255.255.255.0
[NETWORK_WIFI]
ip=168.192.1.1
mask=255.255.255.0

2. 打印

  1. 全打印
awk -F"=" '{print $0}' net.ini
  1. 键打印
awk -F"=" '{print $1}' net.ini
[NETWORK]
ip
mask
[NETWORK_WIFI]
ip
mask
  1. 值打印
awk -F"=" '{print $2}' net.ini

10.1.0.11
255.255.255.0

168.192.1.1
255.255.255.0

三、读取特定Section的Key的值

1. 设置特定值

awk -F'=' -v section="[NETWORK]" -v k="ip" '{print $2}' net.ini

2. 查找匹配项

说明版本:

awk
-F'='                       #分隔符
-v section="[NETWORK]"      #设置section变量
-v key="ip"                 #设置key变量
'
  $0==section     { flag=1; next }\  #flag=1 找到匹配的Section
  /\[/            { flag=0; next }\  #有[开头的表示是另一个Section,设置flag=0
  flag && $1==key { print $2 }    \  #打印key的值
'
net.ini

运行版本:

awk -F'=' -v section="[NETWORK]" -v key="ip" '
    $0==section     { flag=1; next }  
    /\[/            { flag=0; next }  
    flag && $1==key { print $0 }      
' net.ini

四、总结

利用awk处理文本,可以在shell脚本中获取配置来达到动态命令参数的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值