Como faço sed
para editar o arquivo /etc/heat/heat.conf
?
Quero adicionar as novas linhas na seção padrão
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
Responder1
Você pode usar um /regexp/
endereço para encontrar a linha que contém [DEFAULT]
e, em seguida, um comando anexar ( a
) para adicionar linhas abaixo dela. Passe -i
para sed
para que ele modifique o arquivo no local (você pode querer executar sem ele primeiro para ter certeza de que está fazendo a coisa certa; ele exibirá a aparência do arquivo alterado sem realmente alterá-lo):
# sed -i '/^\[DEFAULT\]$/a rabbit_host =controller\nrabbit_password =RABBIT_PASS' /etc/heat/heat.conf
Responder2
se você tiver um arquivo /tmp/a
com o contnet
hello my friend
Você pode usar sed para substituir strings:
sed -i 's/hello/hi/g' /tmp/a
isso resultará em:
hi my friend
ver:man sed
Além disso, você pode adicionar linhas sem sed
um arquivo usando >>
:
echo "I like you">>/tmp/a
Responder3
Tenho certeza de que o solicitante já encontrou uma solução, mas apenas por precaução.
Esta solicitação é ideal para a aplicação crudini, ela está disponível para todas as principais distribuições de Linux, por exemplo, o seguinte adicionará uma linha à DEFAULT
seção de/etc/heat/heat.conf
crudini --set /etc/heat/heat.conf DEFAULT mysetting true
A seção:
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
mysetting = true
será atualizado se a entrada já estiver no arquivo conf.
Responder4
ed
Abordagem da velha escola
ed -s test <<EOF
/^\[DEFAULT\]$/
a
rabbit_host =controller
rabbit_password =RABBIT_PASS
.
w
q
EOF