¿Cómo lo uso sed
para editar el archivo /etc/heat/heat.conf
?
Quiero agregar las nuevas líneas en la sección predeterminada
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
Respuesta1
Puede usar una /regexp/
dirección para encontrar la línea que contiene [DEFAULT]
y luego un a
comando agregar ( ) para agregar líneas debajo de ella. Pase -i
a sed
para que modifique el archivo en el lugar (es posible que desee ejecutarlo sin él primero para asegurarse de que esté haciendo lo correcto; mostrará cómo se verá el archivo modificado sin cambiarlo realmente):
# sed -i '/^\[DEFAULT\]$/a rabbit_host =controller\nrabbit_password =RABBIT_PASS' /etc/heat/heat.conf
Respuesta2
si tienes un archivo /tmp/a
con el contnet
hello my friend
Puedes usar sed para reemplazar cadenas:
sed -i 's/hello/hi/g' /tmp/a
esto resultará en:
hi my friend
ver:man sed
También puedes agregar líneas sin ellas sed
a un archivo usando >>
:
echo "I like you">>/tmp/a
Respuesta3
Estoy seguro de que el solicitante ya ha encontrado una solución, pero por si acaso.
Esta solicitud es ideal para la aplicación Crudini, está disponible para todas las principales versiones de Linux, por ejemplo, lo siguiente agregará una línea a DEFAULT
la sección de/etc/heat/heat.conf
crudini --set /etc/heat/heat.conf DEFAULT mysetting true
La sección:
[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
mysetting = true
se actualizará si la entrada ya está en el archivo conf.
Respuesta4
ed
Enfoque de la vieja escuela
ed -s test <<EOF
/^\[DEFAULT\]$/
a
rabbit_host =controller
rabbit_password =RABBIT_PASS
.
w
q
EOF