我如何使用sed
它来编辑文件/etc/heat/heat.conf
?
我想在默认部分下添加新行
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
答案1
您可以使用/regexp/
地址查找包含 的行[DEFAULT]
,然后使用append ( a
) 命令在其下添加行。传递-i
tosed
使其就地修改文件(您可能想先在没有它的情况下运行,以确保它做正确的事情;它将输出更改后的文件的外观,而无需实际更改它):
# sed -i '/^\[DEFAULT\]$/a rabbit_host =controller\nrabbit_password =RABBIT_PASS' /etc/heat/heat.conf
答案2
如果你有一个/tmp/a
带有 contnet 的文件
hello my friend
您可以使用 sed 来替换字符串:
sed -i 's/hello/hi/g' /tmp/a
这将导致:
hi my friend
看:man sed
您还可以sed
使用以下命令将没有的行添加到文件中>>
:
echo "I like you">>/tmp/a
答案3
我确信请求者现在已经找到了解决方案,但以防万一。
此请求对于应用程序 crudini 来说是理想的,它可用于所有主要的 linux 版本,例如以下将在以下DEFAULT
部分添加一行/etc/heat/heat.conf
crudini --set /etc/heat/heat.conf DEFAULT mysetting true
这部分:
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
mysetting = true
如果conf 文件中已有条目,则将更新。
答案4
老派ed
方法
ed -s test <<EOF
/^\[DEFAULT\]$/
a
rabbit_host =controller
rabbit_password =RABBIT_PASS
.
w
q
EOF