![](/img/trans.png)
[英]How can I use 'sed' in a Linux Bash script file to comment out a particular line with tabbed spacing?
[英]How can i create a Linux Script (bash, sed, awk…) to add a line in a specific section of a configuration's file
我需要使用Linux常用工具(Bash,awk,sed等)制作脚本,以使用INI之类的样式来编辑配置文件,即:
[sectionA]
var1=x
var2=y
#...
[sectionB]
var1=x
var2=y
#...
[sectionC]
var1=x
var2=y
#...
我需要在特定部分中添加一行,即找到一个以“ [sectionX]”行开头的零件,并在下一个新行或EOF之前添加一行。 我怎样才能做到这一点?
sed -i '/^\[sectionB\]/a\append your line here' my_file
要么
sed -i '/^\[sectionB\]/s/$/\nappend your line here/' my_file
示例,使用上述任一命令行在[sectionB]
后面添加一行
输出
[sectionA]
var1=x
var2=y
#...
[sectionB]
append your line here
var1=x
var2=y
#...
[sectionC]
var1=x
var2=y
#...
sed -e 's/\(\[sectionB\]\)/\1\nvar_new=value/' -i file.ini
请注意,如果file.ini
已经有定义var_new=something_else
的行,则需要单独删除它。
你可以用gnu awk
做到这一点
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
在这一节。
您可以使用crudini更加健壮/轻松地编辑文件
crudini --set file 'sectionB' new 42
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.