Cómo insertar una línea después del partido usando 'SED'?

Cómo insertar una línea después del partido usando 'SED'?

Uno de los comandos útiles y poderosos de Linux es el comando "Sed". Este comando se usa para realizar diferentes tipos de tareas en Linux, como insertar, actualizar y eliminar un texto o línea en particular basada en la coincidencia. Puede insertar un texto en una cadena o un archivo de diferentes maneras utilizando el comando "SED".

Cómo insertar una línea después de encontrar una coincidencia en una cadena o se muestra una línea en este tutorial.

Insertar una línea en la cadena

Se puede insertar una nueva línea después de cualquier valor de cadena utilizando el comando "SED" si el patrón definido en el comando coincide con cualquier parte del valor de cadena.

El siguiente ejemplo muestra cómo se puede agregar una nueva línea después de un valor de cadena si existe una cadena particular en cualquier parte del valor de cadena.

Ejemplo-1: inserte una línea en una cadena después de encontrar una coincidencia

El siguiente comando buscará "inng" en la cadena, "me gusta la programación" y una línea de texto, "¿Te gusta la programación?Se insertará después de la cadena si existe la cadena de búsqueda.

Aquí, el carácter "&" se usa para insertar la línea después de la cadena.

$ Echo "Me gusta la programación."| Sed 's/inng/& te gusta la programación?/'

La siguiente salida muestra que "Inng" no existe en la cadena y no se inserta ninguna línea después de la cadena.


El siguiente comando buscará "ing."En la cadena," me gusta la programación "y existe en la cadena.

$ Echo "Me gusta la programación."| Sed 's/ing./Y te gusta la programación?/'

La siguiente salida muestra que la nueva línea se agrega después de la cadena.

Insertar una línea en un archivo

Hay dos formas de insertar una línea después de que se encuentra una coincidencia en un archivo que se menciona a continuación. Cuando se usa el comando "SED" sin la "opción -i", el contenido del archivo permanecerá sin cambios y la salida mostrará el contenido del archivo con la nueva línea insertada. Debe usar la opción "-i" con el comando "SED" para insertar la nueva línea permanentemente en el archivo si el patrón de coincidencia existe en el archivo.

A. Usar "A" en el comando "Sed"

La "A" se puede usar en el patrón de búsqueda del "SED" para agregar una o más líneas en un archivo después de la línea donde el patrón de búsqueda coincide o después de un número de línea en particular.

B. Usando "yo" en el comando "sed"

El "I" se puede usar en el patrón de búsqueda del comando "SED" para insertar una o más líneas en un archivo antes de la línea donde coincide el patrón de búsqueda.

Insertar línea (s) en un archivo basado en el patrón:

Crear un archivo de texto con descarga de pestañas con nombre productos.TXT con el siguiente contenido para mostrar los usos de la bandera anterior en el comando "Sed".

productos.TXT

Nombre de identificación
01 crema de látigo
02 Cacao en polvo
03 azúcar
04 huevo
05 harina

Ejemplo-2: inserte una línea después de un número de línea en particular usando la "A"

Los siguientes comandos muestran cómo se puede agregar una nueva línea, después de un número de línea particular de los productos.archivo txt, basado en el patrón utilizado en el comando "SED".

Aquí, el primer comando mostrará el contenido existente del archivo. El comando "SED" agregará el texto, "Polvo de hornear B01", después de las dos primeras líneas del archivo. El último comando se usa para verificar que el contenido del archivo se cambia o no.

$ Cat Products.TXT
$ sed '2 A B01 \ TBAKING POLDO'.TXT
$ Cat Products.TXT

La siguiente salida aparecerá después de ejecutar el comando anterior.

Ejemplo-3: inserte una línea después de la última línea usando la "A"

El siguiente comando muestra la forma de agregar una nueva línea después de la última línea del archivo. El primer y último comando muestra el contenido existente del archivo antes y después de ejecutar el comando "SED". El símbolo "$" se usa en el patrón del comando "sed" para mencionar la última línea del archivo.

$ Cat Products.TXT
$ sed '$ A B01 \ TBAKING POLDO'.TXT
$ Cat Products.TXT

La siguiente salida aparecerá después de ejecutar el comando anterior.

Ejemplo-4: inserte una línea en cualquier parte del archivo después de hacer coincidir un patrón usando la "A"

El siguiente comando "SED" muestra cómo se puede agregar una nueva línea en cualquier parte del archivo en función del patrón de coincidencia. El patrón utilizado en el comando "SED" buscará cualquier línea que comience con "S01" y agregará la nueva cadena después de él. La cuarta línea del archivo comienza con "S01", y la nueva línea se insertará después de esa línea.

$ Cat Products.TXT
$ sed '/^S01.*/A B01 \ TBAKING PODWOL '.TXT
$ Cat Products.TXT

La siguiente salida aparecerá después de ejecutar el comando.


El siguiente comando "sed" buscará cualquier línea que termine con "polvo" e insertará la nueva línea después de él. La tercera línea del archivo termina con "polvo". Entonces, la nueva línea se insertará después de esa línea.

$ Cat Products.TXT
$ sed '/polvo $/a productos B01 \ Tbaking Powder'.TXT
$ Cat Products.TXT

La siguiente salida aparecerá después de ejecutar los comandos anteriores.

Ejemplo-5: inserte múltiples líneas después del patrón de coincidencia usando "A"

El siguiente comando "SED" muestra la forma de agregar varias líneas dentro del contenido de un archivo basado en el patrón de coincidencia.

Aquí, se agregarán dos líneas después de la tercera línea, de acuerdo con el patrón.

$ Cat Products.TXT
$ Sed '/^[A-C]/A B01 \ Tbaking Powder \ NB02 \ tbaking Soda' Productos.TXT
$ Cat Products.TXT

La siguiente salida aparecerá después de ejecutar los comandos anteriores.

Ejemplo-6: inserte una línea después de hacer coincidir un patrón usando la "I"

$ Cat Products.TXT
$ Sed '/Cream/I B01 \ Tbaking Powder'.TXT
$ Cat Products.TXT

La siguiente salida aparecerá después de ejecutar los comandos anteriores.

Ejemplo-7: inserte una línea permanentemente después del patrón de coincidencia usando la opción "-i"

El siguiente comando "SED" muestra cómo cambiar el contenido del archivo de forma permanente. La opción "I" se usa con el comando "SED" para insertar una nueva línea en el archivo basado en el patrón.

$ Cat Products.TXT
$ sed -i '/e $/a G01 \ tghee' Productos.TXT
$ Cat Products.TXT

La siguiente salida aparecerá después de ejecutar los comandos anteriores.

Conclusión:

Las formas de insertar dos o más líneas en un archivo utilizando el comando "SED" con el patrón se han mostrado en este tutorial para ayudar al lector a aplicar este comando para insertar líneas en el patrón temporal o permanente en función del patrón.