Teniendo en cuenta la importancia del comando SED; Nuestra guía actual explorará varias formas de eliminar caracteres especiales usando el comando SED en Ubuntu.
La sintaxis del comando SED se escribe a continuación:
Sintaxis
comando sed [opciones] [nombre del archivo]
Los caracteres especiales a veces pueden ser una necesidad del contenido que se escribe en un archivo de texto, pero si se usan innecesariamente, hará que el archivo sea desordenado y hay posibilidades de que el lector no preste atención, lo que resulta en un documento sin propósito.
Cómo usar SED para eliminar caracteres especiales en Ubuntu
Esta sección describirá brevemente las formas de eliminar caracteres especiales de un archivo de texto usando SED; Depende del número de caracteres en su archivo que desee eliminar; Puede haber dos posibilidades al eliminar los caracteres de un archivo, o desea eliminar un solo carácter especial o desea eliminar varios caracteres a la vez. De estas posibilidades indicadas anteriormente, hemos extendido esta sección a dos métodos que abordarán ambas posibilidades:
Método 1: Cómo eliminar un solo carácter usando SED
Método 2: Cómo eliminar varios caracteres a la vez usando SED
El primer método aborda la primera posibilidad, y la segunda posibilidad se discutirá en el Método 2, vamos a profundizar en ellos uno por uno:
Método 1: Cómo eliminar un solo carácter especial usando SED
Hemos creado un archivo de texto "pez.TXT"Eso contiene pocos caracteres especiales en diferentes líneas; El contenido dentro del archivo se muestra a continuación:
$ Cat Ch.TXT
Puedes notar que el contenido dentro "pez.TXT"Es difícil de leer; Por ejemplo, queremos eliminar el personaje "#" del archivo de texto; Para esto, tenemos que usar el siguiente comando para eliminar "#" del documento completo:
$ sed 's/\#// g' ch.TXT
Además, si desea eliminar el carácter especial de la línea específica; Para eso, debe insertar el número de línea junto con la palabra clave "S" ya que el comando mencionado a continuación eliminará "#" de la línea número 3 solamente:
$ sed '3s/\#// g' ch.TXT
Método 2: Cómo eliminar varios caracteres a la vez usando SED
Ahora tenemos otro archivo "archivo.TXT"Eso contiene más de un tipo de personaje y queremos eliminarlos en una sola vez. En este método, la sintaxis se cambia poco desde el comando anterior; Por ejemplo, tenemos que eliminar cinco caracteres "ps" de "archivo.TXT";
En primer lugar, mire el contenido de "archivo.TXT"Como las palabras son interrumpidas por estos personajes;
$ Cat File.TXT
El comando indicado a continuación ayudará a eliminar todos estos personajes especiales de "archivo.TXT":
$ sed 's/[#$%*@] // g'.TXT
Aquí podemos dibujar otro ejemplo, digamos que queremos eliminar solo unos pocos personajes de líneas específicas.
Hemos creado un nuevo archivo y el contenido del "archivo nuevo.TXT"Se muestra a continuación:
$ Cat Newfile.TXT
Para esto, hemos escrito un comando que eliminará "#@" y "%*"De las líneas 2 y 3 de"archivo nuevo.TXT"Respectivamente.
$ sed '2s/[#@] // g; 3s/[%*] // g 'Newfile.TXT
El comando SED utilizado en los métodos anteriores mostrará el resultado solo en el terminal en lugar de aplicar los cambios en el archivo de texto: para eso, debemos usar la opción "-I" del comando SED. Se puede usar con cualquier comando SED y los cambios se realizarán en el archivo en lugar de imprimir en el terminal.
Conclusión
Aparentemente, el comando SED actúa como un editor de texto habitual, pero tiene una lista mucho más extensa de acciones en comparación con otros editores. Solo tiene que escribir un comando y los cambios se realizarán automáticamente; Esta característica atrae a los entusiastas de Linux o a los usuarios que prefieren la terminal sobre la GUI. Siguiendo las funcionalidades ventajosas de SED; Nuestra guía se centra en eliminar caracteres especiales del archivo de texto. Si comparamos solo esta característica del comando SED con otros editores, debe buscar caracteres en todo el archivo y luego eliminarlos uno por uno es un proceso tedioso. Por otro lado, SED realiza la misma acción escribiendo un comando de una sola línea en la terminal.