首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建Linux脚本(bash、sed、awk...)在配置文件的特定部分中添加一行

如何创建Linux脚本(bash、sed、awk...)在配置文件的特定部分中添加一行
EN

Stack Overflow用户
提问于 2015-01-13 03:39:45
回答 4查看 794关注 0票数 2

我需要使用Linux常用工具(Bash,awk,sed,...)创建一个脚本要以类似INI的样式编辑配置文件,即:

代码语言:javascript
复制
[sectionA]
var1=x
var2=y
#...

[sectionB]
var1=x
var2=y
#...

[sectionC]
var1=x
var2=y
#...

我需要在特定的部分中添加一行,即找到以行"sectionX“开头的部分,并在下一个新行或EOF之前追加一行。我该怎么做呢?

EN

回答 4

Stack Overflow用户

发布于 2015-01-13 06:40:24

代码语言:javascript
复制
sed -i '/^\[sectionB\]/a\append your line here' my_file

代码语言:javascript
复制
sed -i '/^\[sectionB\]/s/$/\nappend your line here/' my_file

使用上述任一命令行向[sectionB]追加一行的示例

输出

代码语言:javascript
复制
[sectionA]
var1=x
var2=y
#...

[sectionB]
append your line here
var1=x
var2=y
#...

[sectionC]
var1=x
var2=y
#...
票数 3
EN

Stack Overflow用户

发布于 2015-01-13 03:42:59

代码语言:javascript
复制
sed -e 's/\(\[sectionB\]\)/\1\nvar_new=value/' -i file.ini

请注意,如果file.ini已经有一个定义var_new=something_else的行,则需要单独删除它。

票数 1
EN

Stack Overflow用户

发布于 2015-01-13 05:05:27

您可以使用gnu awk实现这一点

代码语言:javascript
复制
awk -vRS= -vORS="\n\n" -F"\n" -vOFS="\n" '/sectionB/ {$1=$1"\nnew=42"}1' file
[sectionA]
var1=x
var2=y
#...

[sectionB]
new=42
var1=x
var2=y
#...

[sectionC]
var1=x
var2=y
#...

搜索sectionB,然后在该部分中添加new=42

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27909490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档