Bash脚本读取.conf文件中多实例NOFiles变量的值
解决Bash读取配置文件中重复变量的问题
你的问题在于用. dlt_logstorage.conf(即source命令)加载配置时,Shell会按顺序执行文件里的赋值语句,后面的NOFiles值会覆盖之前的,因此只能拿到最后一个值。以下是几种能提取所有NOFiles值的方法:
方法1:grep + cut 快速提取
直接匹配目标行并分割取值:
grep -E '^NOFiles=' dlt_logstorage.conf | cut -d'=' -f2
执行后会逐行输出所有NOFiles的值:
2 1
方法2:awk 灵活处理
用awk直接分割并打印目标字段:
awk -F'=' '/^NOFiles=/{print $2}' dlt_logstorage.conf
这个方法和上面效果一致,awk适合更复杂的文本处理场景。
方法3:关联段落与变量值(可选)
如果需要同时查看每个NOFiles所属的段落,可以用awk记录段落信息:
awk -F'=' '/^\[/{section=$0} /^NOFiles=/{print section, $2}' dlt_logstorage.conf
输出结果会是:
[FILTER1] 2 [FILTER2] 1
内容的提问来源于stack exchange,提问作者jtr
相关产品推荐
相关产品推荐

