温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux中怎么利用awk解析ini文件

发布时间:2021-06-22 15:19:06 来源:亿速云 阅读:302 作者:Leah 栏目:大数据

这期内容当中小编将会给大家带来有关Linux中怎么利用awk解析ini文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1 ini文件

ini文件是一些软件用来保存配置信息的文本文件。ini文件的优点是简单和灵活,缺点是没有统一的标准。

下面来看一个ini文件内容示例::

[Master]
Arguments = -log master.log
LogLevel = 3
[Client]
Arguments = -log client.log
LogLevel = 1

从这里可以看到,ini文件的内容可以根据[Master]、[Client]分为不同的部分,每个部分包含了一组键值对。我们可以对ini文件进行简单的建模:

  1. ini文件是一个文本文件,由一组域组成。

  2. 域由域名字和一系列键值对组成。域名字和每个键值对,分别占一行。

  3. 域名所在行的格式为“[域名字]”。

  4. 域中键值对所在行的格式为“键=值”。

基于这个模型就可以对ini文件进行解析。

2 awk程序

下面的程序遍历ini文件的每一行,将读取到的键值对以 “export scope_name=value” 的格式输出。

# ini2env.awk
function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s }
function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s }
function trim(s) { return rtrim(ltrim(s)); }

BEGIN{scope="";} {                              
        if ($1 ~ /\[.*\]/)                                                   
                scope=trim(substr($1,2,length($1)-2));                             
        else {                                                   
                name=trim($1)
                value=$2;  
                if (length(value) > 0) { 
                        printf("export %s_%s=\"%s\"\n", scope, name, value); 
                } 
        } 
}

3 使用示例

# ini 文件
[app]
arguments= --debug
# 将ini文件转换为临时的shell脚本。
tmpfile=`mktemp'
cat app.ini | awk -F '=' -f ini2env.awk >> $tmpfile
# 加载sh脚本,设置环境变量。
source $tmpfile
# 删除临时脚本。
rm $tmpfile

# 启动程序,将ini参数传入。
app=./a.out
$app $app_arguments

上述就是小编为大家分享的Linux中怎么利用awk解析ini文件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI