将 nagios 配置文件转换为 csv

问题描述 投票:0回答:2

我有一个 Nagios 目录,其中包含一些服务器配置文件:

define host {
   host_name            server1.srv
   hostgroups           linux-servers+holmes
   check_interval           5
}

define host {
   host_name            server2.srv
   hostgroups           linux-servers+holmes
   check_interval           5
}   

我想将数据重新格式化为 CSV,这样我会得到:

host_name,hostgroups,check_interval
server1.srv,linux-servers+holmes,5
server2.srv,linux-servers+holmes,5

我很高兴使用 bash 或 powershell 来完成此操作,但我还不够脚本大师,不知道如何执行此操作...如果有人有建议,我们将不胜感激:)!

bash powershell nagios
2个回答
3
投票

这个 awk 应该可以工作:

awk 'BEGIN{print "host_name,hostgroups,check_interval"} /host_name/{v1=$2} /hostgroups/{v2=$2} /check_interval/{v3=$2} /}/{print v1","v2","v3; v1=v2=v3=""}' file

0
投票

我尝试使用几个不同的选项,但它返回“未终止的字符串”语法错误,但它看起来与上面相同,只是添加了我的选项。预先感谢。

awk 'BEGIN{print "host_name,hostgroups,contacts,contact_groups"} /host_name/{v1=$2} /hostgroups/{v2=","$2} /contacts/{v3=","$2} /contact_groups/{v4=","$2} /}/{print v1","v2","v3,"v4; v1=v2=v3=v4""}' objects.txt > objectexport2.csv
© www.soinside.com 2019 - 2024. All rights reserved.