Sed, un potente editor de secuencias, con soporte de expresiones regulares

Sed expresiones regulares

Ayer necesitaba unos cambios en todos los ficheros de lista blanca para hosts con IP dinámica (conexión 3G/4G, salidas fuera de la oficina…) y la verdad si la ayuda sed, un potente mini-editor, sería un caos actualizar 100 máquinas virtuales y sus hosts anfitriones. Así que se me ha ocurrido crear este articulo, donde ire añadiendo secuencias de este potente editor que nos pueden salvar de horas de trabajo.

Añadir con sed una linea si no encuentra un resultado de un valor de configuración

Tenia que añadir una variable de configuración, que en algunos casos existía y en otro no, al fichero de configuración de mi firewall CSF, con un formato VAR = “value”, haciendo uso de && (AND) y || (OR), y encontré este tip, How to add a line in sed if not match is found

Añadir con grep una linea si no encuentra el resultado

En mi caso también tenía que añadir dos nombres  de host al fichero de lista blanca dinámico. Pero algunos de mis servicios, ya tenían esas lineas así que necesitaba verificar primero, si existía la cadena, para no duplicar lineas. Así que adapte,

Modificación masiva

En un fichero de texto (servidores.txt) tengo la lista de mis servidores, y de esta forma es mas sencillo hacer los cambios en todos ellos.

sshno es una alias que tengo, para conexiones en las que no quiero verificar de forma estricta la conexión ssh, de forma que pueda trabajar de forma desatendida, por si aun no me conecte a ese host guardando las llaves de conexión.


Imagen Designed by Freepik y adaptada por Abdelkarim Mateos

Comparte este artículo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax