viernes, 5 de agosto de 2011

Añadir y borrar varias líneas en un archivo

Añadir varias líneas a un archivo
Puedo añadir varias líneas a un archivo usando el comando echo con el parámetro -e que activa la interpretación de secuencias de escape, como por ejemplo, tabuladores (\t), nuevas líneas (\n)...

Por ejemplo, el siguiente comando:

# echo -e "#inicio\niface wlan0 inet static\naddress 192.168.100.1\nnetmask 255.255.255.0\nauto wlan0\n#fin\n" >> /etc/network/interfaces

añade el siguiente conjunto de líneas al fichero /etc/network/interfaces:

#inicio
iface wlan0 inet static
address 192.168.100.1
netmask 255.255.255.0
auto wlan0
#fin

Borrar varias líneas de un archivo
Los comentarios #inicio y #fin están añadidos a propósito al archivo como indicadores de dónde comienza y termina el bloque de texto, para facilitar el borrado de las líneas en un momento dado.

Si ahora, quisiera borrar este bloque de líneas, no tendría más que ejecutar el siguiente comando:

# sed -i.bak '/^#inicio/,/^#fin/d' /etc/network/interfaces

Aunque para ser más exactos, lo que haría, sería guardar el resultado de ejecutar el comando sed en el fichero /etc/network/interfaces y una copia de seguridad del contenido antes de ejecutar el comando en el archivo /etc/network/interfaces.bak