Las tareas de reemplazo se pueden realizar de diferentes maneras. El comando 'Sed' es una de las formas de hacer la tarea de reemplazo. Este comando se puede usar para reemplazar el texto en una cadena o un archivo utilizando un patrón diferente. Cómo puede reemplazar todo después de que el patrón de coincidencia usando el comando 'sed' se muestra en este tutorial.
Reemplace todo después del partido en una cadena:
En esta sección de este tutorial se puede reemplazar la parte de una cadena en función de un patrón de coincidencia y $ partition_column. Pero esta variable funciona si el patrón coincide con cualquier palabra al principio o en el medio de la cadena. No reemplazará el texto si el patrón coincide con la última palabra de la cadena.
Ejemplo-1: reemplace todo después del partido usando $ partition_column
El siguiente comando buscará al personaje 'A', y la parte restante después de 'a' será reemplazada por el texto, "un sitio de blog popular". $ PARTITION_COLUMN.* se usa para definir la parte restante después del personaje, 'A'.
$ Echo "Linuxhint es un sitio web" | sed "S/A $ PARTITION_COLUMN.*/un sitio de blog popular/"
La siguiente salida aparecerá después de ejecutar el comando. Aquí, 'un sitio web' ha sido reemplazado por 'un sitio de blog popular'.
El siguiente patrón buscará la palabra 'web'en la cadena y reemplace la parte restante con el'web'Por el texto'Un sitio de blog popular'Si existe el partido y'web'No es la parte de la última palabra de la cadena.
$ Echo "Linuxhint es un sitio web" | sed "S/Web.* $ PARTITION_COLUMN.*/un sitio de blog popular/"
La siguiente salida aparecerá después de ejecutar el comando. Aquí, 'Sitio web' es la última palabra de la cadena, y no se ha realizado ningún reemplazo por este motivo.
Ejemplo-2: reemplace todo después de la coincidencia usando el patrón
El siguiente comando buscará la palabra 'intento'globalmente en la cadena y reemplazar todo con la palabra si la palabra existe en la cadena. 'gramo'se usa aquí para la búsqueda global.
$ Echo "Me gusta la programación de bash" | sed "S/BASH.*/script python/g "
La siguiente salida aparecerá después de ejecutar el comando. Aquí, 'Bash' existe en el medio de la cuerda, y el reemplazo se ha realizado.
Reemplace todo después del partido en un archivo:
Todo el contenido de una línea en particular o múltiples líneas o líneas restantes de un archivo después de la coincidencia se puede reemplazar utilizando 'sed' dominio. Crear un archivo de texto llamado asistencia.TXT con el siguiente contenido para probar los ejemplos que se muestran en esta sección.
asistencia.TXT
1108885 está presenteEjemplo -3: Reemplace todo el contenido desde una línea de un archivo después de la coincidencia
El siguiente comando 'Sed' buscará el número 1769994 en el archivo, y todo con el número será reemplazado por el texto, '1586844 está presente' si el número existe en cualquier línea del archivo.
$ Cat Allendence.TXT
$ sed "S/1769994.*/1586844 está presente/"Asistencia.TXT
La siguiente salida aparecerá ejecutando los comandos. Aquí, el número de búsqueda existe en la tercera línea del archivo, y el reemplazo se ha realizado.
Ejemplo -4: reemplace todo el contenido de las múltiples líneas de un archivo después de la coincidencia
El siguiente comando 'sed' muestra el uso de la variable $ partition_column para reemplazar múltiples líneas desde el archivo. El comando buscará '110' en el inicio de cada línea del archivo y reemplazará todo con '110' por el texto 'Entrada inválida' donde se encontrará el texto coincidente.
$ Cat Asistencia.TXT
$ sed "S/^110.* $ PARTITION_COLUMN.*/Entrada inválida/"Asistencia.TXT
La siguiente salida aparecerá después de ejecutar los comandos. '110' existe en dos líneas del archivo, y estos han sido reemplazados por el texto de reemplazo.
Ejemplo-5: Reemplace todo el contenido desde una línea de un archivo usando 'C' después de la coincidencia
La siguiente 'sed'El comando muestra el uso de'C'Reemplazar todo después del partido. Aquí, 'C'Indica el cambio. El comando buscará la palabra 'presente'En el archivo y reemplace todo de la línea con el texto', 'Esta línea se reemplaza'Si la palabra existe en cualquier línea del archivo.
$ Cat Asistencia.TXT
$ sed '/presente/c Esta línea se reemplaza'.TXT
La siguiente salida aparecerá después de ejecutar los comandos. La palabra 'presente' existe en las dos primeras líneas del archivo, y estas dos líneas han sido reemplazadas por el texto de reemplazo.
Ejemplo-6: reemplace todo el contenido desde una línea de un archivo basado en el patrón de inicio y finalización
A veces se requiere reemplazar el texto basado en el patrón de inicio y finalización. El siguiente comando 'sed' muestra la forma de definir patrones de inicio y finalización para reemplazar las líneas de un archivo. El comando buscará esas líneas en el archivo que comienza con el número 110 y termina con la palabra 'ausente' y reemplazará todo con la palabra 'reemplazado' donde coinciden los patrones.
$ Cat Asistencia.TXT
$ sed -e 's/^110.*Ausente de $/reemplazo/g 'asistencia.TXT
La siguiente salida aparecerá después de ejecutar los comandos. Aquí, la primera y la cuarta líneas comienzan con el número 110, pero la palabra 'ausente' existe solo en la cuarta línea. Entonces, la cuarta línea del archivo ha sido reemplazada por el texto de reemplazo.
Conclusión:
El comando 'Sed' es una herramienta muy poderosa de Linux para realizar diferentes tipos de tareas relacionadas con el procesamiento de texto. La tarea de reemplazo basada en el patrón de coincidencia se discute en este tutorial utilizando varios tipos de patrones en el comando 'sed'. $ PARTITION_COLUMN, 'C' y '.*'se usa en este tutorial para reemplazar todo de una línea del archivo donde existe el patrón de coincidencia. Los usos de algunos caracteres de la definición de patrones han mostrado aquí, como '^' y '$'. Existen muchos otros personajes para definir el patrón en expresión regular para fines de búsqueda. Espero que este tutorial ayude al lector a conocer los conceptos básicos de reemplazar todo, desde un archivo después del partido.