利用awk 的范围模板来读取ini中的配置
范围模板匹配从第一个模板的第一次出现到第二个模板的第一次出现之间所有行。如果有一个模板没出现,则匹配到开头或末尾。
如$ awk '/root/,/mysql/' test将显示root第一次出现到mysql第一次出现之间的所有行。
假设tmp.ini文件内容为
[common]
key1="common 1"
key2="common 2"
[com1]
key1="com1 1"
key2="com1 2"
[com2]
key1="com2 1"
key2="com2 2"
假设要读取com1的key1值,那么使用以下的脚本就可以实现(假设key中部应该包含空格)
cat tmp.ini | awk 'BEGIN{FS="=";OFS=":";}/\[‘com1'\]/,/\[.*[^('com1')].*\]/{gsub(/[[:blank:]]*/,"",$1);if(NF==2 && $1=="key1"){gsub(/^[[:blank:]]*/,"",$2);gsub(/[[:blank:]]*$/,"",$2);print $2;}}'
更通用的写法应该就是
section="com1";
key="key1";
cat tmp.ini | awk 'BEGIN{FS="=";OFS=":";}/\['$section'\]/,/\[.*[^('$section')].*\]/{gsub(/[[:blank:]]*/,"",$1);if(NF==2 && $1=="'$key'"){gsub(/^[[:blank:]]*/,"",$2);gsub(/[[:blank:]]*$/,"",$2);print $2;}}'
分享到:
相关推荐
主要介绍了Shell脚本读取ini配置文件的实现代码2例,如果只是读取内容推荐使用简单版,有更多需求请见复杂版,需要的朋友可以参考下
ini文件格式一般都是由节、...所以这样单独哪出来比较好些,而且可以多个shell使用一个ini文件(与扩展名无关)来做配置也可以的。只需要在shell里面加一个自定义函数就可以了。 代码如下: # __readINI [配置文件路径+
主要介绍了Shell脚本读取标准ini配置文件Demo,本文直接给出代码实例,需要的朋友可以参考下
获得INI文件指定段的全部键名和键值、文件对话框、临时文件创建、目录创建、获得INI文件的全部段名、查找文件、复制文件、获得或设置进程的当前目录、获得或设置文件的属性、逐行读取文本文件、重命名文件、在列表框...
如何获得INI文件指定段的全部键名和键值 如何获得或设置进程的当前目录 如何获得文件的信息 如何删除目录 ...如何在INI文件中读写数据 如何在列表框或组合框中显示文件和目录列表 如何重命名文件
使用C语言和Windows API编写,作了一些特殊处理以同时支持WinCE5和WinCE6,主要实现shell中的功能,提供的各种操作涉及到文件系统、窗口管理、进程管理和流程控制几个方面,通过解析配置文件内容来执行相应的操作,...
本程序启动时,通过读取ChromePortable.ini配置文件中的相关配置内容,可以相应参数和配置启动Chrome浏览器、关联打开chrome.exe支持格式的文件、并支持启动和控制两个先行程序。 1. ChromePortable.exe程序的运行...
本程序启动时,通过读取ChromePortable.ini配置文件中的相关配置内容,可以相应参数和配置启动Chrome浏览器、关联打开chrome.exe支持格式的文件、并支持启动和控制两个先行程序。 1. ChromePortable.exe程序的运行...
使用C语言和Windows API编写,作了一些特殊处理以同时支持WinCE5和WinCE6,主要实现shell中的功能,提供的各种操作涉及到文件系统、窗口管理、进程管理和流程控制几个方面,通过解析配置文件内容来执行相应的操作,...
这个源代码主要模仿了一个类似 深度操作系统安装程序中的一个软件自动安装管理器AutoIt v3,具有如下功能: 一、支持INI读取,支持 SECTION 的读取,模块modINIReader.bas支持读取Sections及key 二、...
Shell获取特殊文件 安全的删除自己 比较两个文件是否相同 查找目录全部文件大小 查找文件 从全路径名中获得文件扩展名 从全路径名中提取文件名 二进制复制文件 获取当前目录下所有文件和文件夹 记载Windows使用的...
一、支持INI读取 二、支持 /auto /uninstall /del命令行参数运行 三、支持软件后台静默模式安装、支持静默卸载(当然视安装软件的参数支持) 四、支持自身删除 五、模块 modSys.bas 获取文件大小,支持kb,MB,...
一旦你将多媒体光盘插入驱动器,自动运行就会从驱动器中读取数据, 这会造成程序的设置文件和在音频媒体上的音乐立即开始。你可以用下面这 个办法关闭这个功能:打开“开始→运行”,在对话框中输入“gpedit.msc...
一些设置是从环境变量中读取的,请参阅uWSGI服务文件。 CELESTIA_ALLOWED_NESTED_EXTS-为文件上传添加允许的嵌套扩展名。 例如('tar','ext')以文件名保存.tar.gz或.ext.zip扩展名。 qzandronum.ini 应用服务器...
Windows 的版本 RAR 从 rar.ini 文件读取配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: switches=任何 RAR 开关,用空格分开 例如: switches=-m5 -s 环境变量 ~~~~~~~~ ...
配置gc2145.c的编译选项,只需要修改device目录中的Makefile打开gc2145即可: R:\wyb\gc2145_parrotv1.1_r16m\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\gc2145.c (请严重注意,全志R16的parrotv1.1/...
Web CGI漏洞利用 这是与不同的Web CGI相关的几种漏洞利用。 我在过去几年中写过这些漏洞。 这个怎么运作 ... fcgi_jailbreak.php使用fastcgi参数来更改一些php ini配置并破坏基于php的沙箱。 Apache