`
dylan.wu
  • 浏览: 134108 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

shell中读取ini配置。

 
阅读更多

利用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例

    主要介绍了Shell脚本读取ini配置文件的实现代码2例,如果只是读取内容推荐使用简单版,有更多需求请见复杂版,需要的朋友可以参考下

    Shell实现读取ini格式配置文件方法

    ini文件格式一般都是由节、...所以这样单独哪出来比较好些,而且可以多个shell使用一个ini文件(与扩展名无关)来做配置也可以的。只需要在shell里面加一个自定义函数就可以了。 代码如下: # __readINI [配置文件路径+

    Shell脚本读取标准ini配置文件Demo

    主要介绍了Shell脚本读取标准ini配置文件Demo,本文直接给出代码实例,需要的朋友可以参考下

    21个文件操作VC 源码实例.rar

    获得INI文件指定段的全部键名和键值、文件对话框、临时文件创建、目录创建、获得INI文件的全部段名、查找文件、复制文件、获得或设置进程的当前目录、获得或设置文件的属性、逐行读取文本文件、重命名文件、在列表框...

    21个VC文件操作实例源码

    如何获得INI文件指定段的全部键名和键值 如何获得或设置进程的当前目录 如何获得文件的信息 如何删除目录 ...如何在INI文件中读写数据 如何在列表框或组合框中显示文件和目录列表 如何重命名文件

    WinCE脚本解析程序(写写文本就能做很多意想不到的事情)

    使用C语言和Windows API编写,作了一些特殊处理以同时支持WinCE5和WinCE6,主要实现shell中的功能,提供的各种操作涉及到文件系统、窗口管理、进程管理和流程控制几个方面,通过解析配置文件内容来执行相应的操作,...

    ChromePortable-Chrome便携化、绿化工具 part1

    本程序启动时,通过读取ChromePortable.ini配置文件中的相关配置内容,可以相应参数和配置启动Chrome浏览器、关联打开chrome.exe支持格式的文件、并支持启动和控制两个先行程序。 1. ChromePortable.exe程序的运行...

    ChromePortable-Chrome便携化、绿化工具 part2

    本程序启动时,通过读取ChromePortable.ini配置文件中的相关配置内容,可以相应参数和配置启动Chrome浏览器、关联打开chrome.exe支持格式的文件、并支持启动和控制两个先行程序。 1. ChromePortable.exe程序的运行...

    CETool(最新2013.8)

    使用C语言和Windows API编写,作了一些特殊处理以同时支持WinCE5和WinCE6,主要实现shell中的功能,提供的各种操作涉及到文件系统、窗口管理、进程管理和流程控制几个方面,通过解析配置文件内容来执行相应的操作,...

    软件自动安装管理器

    这个源代码主要模仿了一个类似 深度操作系统安装程序中的一个软件自动安装管理器AutoIt v3,具有如下功能: 一、支持INI读取,支持 SECTION 的读取,模块modINIReader.bas支持读取Sections及key 二、...

    VB文件系统实例-文件系统全家福

    Shell获取特殊文件 安全的删除自己 比较两个文件是否相同 查找目录全部文件大小 查找文件 从全路径名中获得文件扩展名 从全路径名中提取文件名 二进制复制文件 获取当前目录下所有文件和文件夹 记载Windows使用的...

    IT姐妹软件安装管理程序

    一、支持INI读取 二、支持 /auto /uninstall /del命令行参数运行 三、支持软件后台静默模式安装、支持静默卸载(当然视安装软件的参数支持) 四、支持自身删除 五、模块 modSys.bas 获取文件大小,支持kb,MB,...

    电脑高手必备 Windows系统35招实用技巧

     一旦你将多媒体光盘插入驱动器,自动运行就会从驱动器中读取数据, 这会造成程序的设置文件和在音频媒体上的音乐立即开始。你可以用下面这 个办法关闭这个功能:打开“开始→运行”,在对话框中输入“gpedit.msc...

    Q-Zandronum-Web

    一些设置是从环境变量中读取的,请参阅uWSGI服务文件。 CELESTIA_ALLOWED_NESTED_EXTS-为文件上传添加允许的嵌套扩展名。 例如('tar','ext')以文件名保存.tar.gz或.ext.zip扩展名。 qzandronum.ini 应用服务器...

    rar压缩软件.rar

    Windows 的版本 RAR 从 rar.ini 文件读取配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: switches=任何 RAR 开关,用空格分开 例如: switches=-m5 -s 环境变量 ~~~~~~~~ ...

    gc2145_parrotv1.1_r16m_验证完成_20170523_1408没有外层目录.7z

    配置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/...

    webcgi-exploits:多语言Web CGI界面漏洞利用

    Web CGI漏洞利用 这是与不同的Web CGI相关的几种漏洞利用。 我在过去几年中写过这些漏洞。 这个怎么运作 ... fcgi_jailbreak.php使用fastcgi参数来更改一些php ini配置并破坏基于php的沙箱。 Apache

Global site tag (gtag.js) - Google Analytics