You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在Bash中按指定格式解析.ini文件

Bash实现INI文件条目展开方案

我来给你一个简单高效的Bash实现方案,用awk就能轻松搞定这个需求:

首先看一下你的输入INI内容:

[Machine1]
app=version1
[Machine2]
app=version1
app=version2
[Machine3]
app=version1
app=version3

期望输出格式:

[Machine1]app = version1
[Machine2]app = version1
[Machine2]app = version2
[Machine3]app = version1
[Machine3]app = version3

核心实现命令

awk '/^\[.*\]$/{section=$0; next} {print section $0}' your_file.ini

命令原理解释

  • /^\[.*\]$/:匹配所有以[开头、]结尾的行(也就是INI文件中的section标题行,比如[Machine1])
  • {section=$0; next}:将匹配到的section标题行内容存入变量section,然后用next跳过当前行的后续处理,直接处理下一行
  • {print section $0}:对于非section的行(即app=versionX的配置行),将之前保存的section内容与当前行拼接后打印,正好得到你需要的格式

处理空行的优化版

如果你的INI文件中存在空行,不想输出这些空行对应的无效内容,可以使用下面的命令,只处理非空行:

awk '/^\[.*\]$/{section=$0; next} NF>0{print section $0}' your_file.ini

这里的NF>0表示仅处理包含内容的行(空行的字段数NF为0,会被跳过)

内容的提问来源于stack exchange,提问作者Ras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:29:53