Linux 中如何使用 sed 修改 ini 配置文件节点内容

2020-12-03 11:05:08 +08:00
 css3

有个修改配置文件的需求,注释或者取消注释 ini 里边一个节点, 配置文件节点 key 的个数和行数都不固定,是变化的

[parameters1]
    database_user    = user1
    database_version = 2503

[parameters2]
    database_user    = user2
    database_version = 2506

希望给 parameters1 节点整体添加注释(效果图如下), 用 sed 能改吗,或者用其他方法也行:

#[parameters1]
#   database_user    = user1
#   database_version = 2503


[parameters2]
    database_user    = user2
    database_version = 2506

还有就给现有带注释的内容,取消注释

965 次点击
所在节点    程序员
4 条回复
aloxaf
2020-12-03 11:22:08 +08:00
```
section1='^\[parameters1\]'
section2='^\[parameters2\]'
sed -i "/$section1/,/$section2/{/$section2/\!{s/.*/#&/}}" test.txt
```
css3
2020-12-03 11:31:49 +08:00
@aloxaf 老哥,不太行啊,parametersX 有 n 个😭
nano91
2020-12-03 17:29:24 +08:00
python 脚本吧 看看文件读写和字符串操作就行了 这种常用的操作 可以自己写一个工具集存着备用了
@css3
IgniteWhite
2020-12-03 19:37:34 +08:00
这种需求,明显 awk 比 sed 要合适

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/731666

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX