Cómo añadir texto con "sed" e insertar al final de línea

Cómo añadir texto con "sed" e insertar al final de línea

En ocasiones, puede ser de gran utilidad insertar texto en el encabezado de un documento o en algún otro lugar del mismo, como por ejemplo antes o después de una línea. El editor de flujo de Linux, sed, puede ayudarnos con esta tarea y a continuación veremos cómo.

¿Cuál es la sintaxis de "sed"?

La sintaxis es la misma tanto para insertar, añadir o modificar:

sed '{/ocurrencia/|/regexp/|n}{i|a|c}\<Texto a insertar>' fichero

¿Cómo añadir texto con "sed"?

Existen tres maneras de insertar texto en un documento:

  1. La inserción antes de la línea en curso (con el parámetro 'i' de insert).
  2. La inserción después de la línea en curso (con el parámetro 'a' de after).
  3. El reemplazo (con el parámetro 'c' de change).

Insertar una línea con 'i'

La sintaxis es simple, no hay más que indicar la línea antes de la cual va a ser insertada la nueva línea, ya sea por su número o por una ocurrencia. En este último caso, la línea será insertada antes de cada línea que contenga la ocurrencia. Por ejemplo:

  • Con un número de línea concreto:
sed "16i\Notas: La negación se obtiene con un punto de exclamación! \n " fichero.txt
  • Con una ocurrencia:
sed "/Conclusión/i\Notas: La negación se obtiene con un punto de exclamación! \n" fichero.txt

Añadir una línea con 'a'

La sintaxis es la misma, tan solo hay que indicar la línea en la que después será insertada la nueva, ya sea por su número o por una ocurrencia. En el caso de una ocurrencia, una línea será insertada después de cada línea que contenga la ocurrencia. A continuación, un ejemplo:

  • Con un número de línea concreto:
sed "8a \"ed\" es un editor de texto orientado a líneas. Es utilizado para crear, mostrar\ , modificar o manipular archivos de texto.” fichero.txt
  • Con una ocurrencia:
sed "/\"ed\"/a \"ed\"es un editor de texto orientado a líneas. Es utilizado para crear, mostrar\ , modificar o manipular archivos de texto.” fichero.txt

Reemplazar una línea con 'c'

La sintaxis es la misma, tan solo hay que indicar la línea que será sustituida por la nueva, ya sea por su número de línea o por una ocurrencia. En el caso de una ocurrencia, cada línea que presente la ocurrencia será sustituida. Un ejemplo sería:

  • Con un número de línea concreto:
sed "/14/c Diversos parámetros pueden ser pasados al final de la expresión, como por ejemplo el parámetro \"g\" (de global), para que sean sustituidas todas las líneas que contengan la ocurrencia" fichero.txt
  • Con una ocurrencia:
sed "/global/c Diversos parámetros pueden ser pasados al final de la expresión, como por ejemplo el parámetro \"g\" (de global), para que sean sustituidas todas las líneas que contengan la ocurrencia" fichero.txt

¿TIENES MÁS PREGUNTAS SOBRE LINUX? ¡CONSULTA NUESTRO FORO DE DISCUSIÓN! 

Linux