我如何使用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