El comando sed: Insertar texto al principio o al final de una línea | Algo de Linux

jueves, 20 de noviembre de 2014

El comando sed: Insertar texto al principio o al final de una línea

Vamos a ver algunos ejemplos de inserción de texto con el comando sed que utilizo con frecuencia en scripts. Como siempre, lo mejor es verlo con ejemplos concretos para que se entienda fácilmente:

Supongamos que queremos insertar una cadena de texto al principio de una línea concreta, por ejemplo en la línea 1. Haríamos lo siguiente:
$ sed -i "1 s|^|IP=|" /tmp/formulario
Con el comando anterior le estamos diciendo a sed que sustituya el comienzo de la línea por el texto "IP=" en la línea 1 en el archivo /tmp/formulario.

Si en lugar de ésto, lo que queremos es insertar el mismo texto en todas las líneas, cambiaríamos el comando para que quedara así:
$ sed -i "s|^|IP=|g" /tmp/formulario
Si en lugar de insertar el texto al principio de la línea, quisiéramos insertarlo al final de una línea concreta, el comando también sería sencillo:
$ sed -i "2 s|$|=$valor|" /tmp/formulario
En este caso, le estamos diciendo al comando sed que sustituya el final de la línea por el valor de una variable a la que hemos llamado $valor en la línea 2 del archivo /tmp/formulario.
Si ahora quisiéramos realizar la sustitución en todas las líneas del archivo, el comando quedaría así:
$ sed -i "s|$|=$valor|g" /tmp/formulario 
Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: