shell 从.conf文件读取变量的多个示例的值- bash脚本

0tdrvxhp  于 2023-03-09  发布在  Shell
关注(0)|答案(2)|浏览(230)

我正在尝试打印一个变量的值,该变量在.conf文件中的多个部分重复。.conf文件的示例如下

[FILTER1]
LogLevel=DLT_LOG_INFO
File=offline_log1
FileSize=20000000
NOFiles=2
EcuID=ECU1
SyncBehavior=ON_SPECIFIC_SIZE
SpecificSize=4096

[FILTER2]
LogLevel=DLT_LOG_INFO
File=offline_log2
FileSize=20000000
NOFiles=1
EcuID=ECU1
SyncBehavior=ON_SPECIFIC_SIZE
SpecificSize=4096

需要在另一个bash脚本中读取此.conf文件,并逐行回显 NoFiles 变量的值
到目前为止,我尝试了以下脚本,我只能获取变量的最后一次出现

#! /bin/bash
. dlt_logstorage.conf
echo "$NOFiles"
vecaoik1

vecaoik11#

你不能。节名对shell变量赋值没有影响,所以第二个将替换第一个。
您建议的文件格式是Windows INI文件格式。在this link中,您可以找到一些解析它的解决方案。

r9f1avp5

r9f1avp52#

如果您只需要打印这些值,这将完成您的工作。

field="NOFiles"
sed -n "s/$field=\(.*\)/\1/p" file.conf

相关问题