SED Reemplace la nueva línea con espacio

SED Reemplace la nueva línea con espacio
En Unix/Linux, el comando SED es una herramienta dedicada para editar transmisiones. Puede realizar varias operaciones en un flujo de texto, como buscar, encontrar y reemplazar, e inserción/eliminación. En su mayor parte, sin embargo, SED se usa para encontrar y reemplazar el contenido del texto.

En esta guía, exhibiremos reemplazar nuevas líneas con espacio usando SED.

Usar SED para reemplazar el texto

Primero, veamos rápidamente realizar la realización básica de búsqueda y reemplazo usando SED. Se utilizará el mismo método al reemplazar nuevas líneas con espacios con algunas opciones adicionales. La estructura de comando es la siguiente:

$ sed -e 's ///'

Eche un vistazo al siguiente comando:

$ Echo "The Quick Brown Fox" | Sed -e 'S/Quick/Fast/G'

El comando echo imprime la cadena a stdout. La corriente de stdout se conecta a SED. Hemos ordenado a SED que reemplace cualquier instancia de rápido que se reemplazara con Fast. Finalmente, la salida se imprime en la pantalla.

Reemplazo de nuevas líneas con espacio

Para la demostración, he creado la siguiente prueba de archivo de texto.txt con varios contenidos ficticios:

Prueba de $ Cat.TXT

El comando SED acepta expresiones regulares para describir varios patrones. Aprovechando esta característica, vamos a describir Newline como \ n. Intentemos reemplazar las líneas nuevas con Whitespace:

prueba de $ sed -e 's/\ n//g'.TXT

Sin embargo, eso no funcionó como se esperaba. Para lograr este objetivo, necesitamos algunas opciones adicionales. Eche un vistazo al siguiente comando:

$ sed -e ': a; n; $!prueba BA; S/\ N//G '.TXT

El comando SED tiene múltiples secciones; cada uno denota una tarea específica:

  • : a: crea una etiqueta 'a'
  • N: Agrega la siguiente línea al espacio del patrón
  • ps!BA: Si no es la última línea, vuelve a etiquetar 'A'
  • s/\ n//g: encuentra y reemplaza a Newline (\ n) con espacio (//). El patrón coincide a nivel mundial (/g)

El comando SED buce a través de los pasos hasta que alcanza la última línea, sustituyendo todos los caracteres con espacio.

En lugar de este complejo comando, podemos simplificar las cosas utilizando el indicador -z que especifica que SED funcione con registros separados por NULL. El comando se vería así:

prueba de $ sed -z -e 's/\ n//g'.TXT

Metodos alternativos

Si bien SED puede hacer la tarea bien, hay algunas herramientas alternativas. En esta sección, examinaremos brevemente un par de ellos.

Para el siguiente ejemplo, podemos usar el comando TR para reemplazar Newline con Whitespace de manera simple:

$ tr '\ n "< test.txt

También podemos usar Perl para hacer el trabajo. La siguiente sintaxis también es similar a lo que usamos con SED (pero simplificado):

prueba de $ perl -p -e 's/\ n//'.TXT

Otra forma de reemplazar nuevas líneas con Whitespace es usar el comando Paste. Tenga en cuenta que solo puede eliminar un carácter:

$ paste -s -d "prueba.TXT

Similar a SED, Linux viene con otra herramienta AWK. Similar a SED, también puede realizar algunos reemplazos avanzados en la entrada. Para nuestro propósito, use el siguiente comando AWK:

$ awk 1 ors = "prueba.TXT

Conclusión

Esta guía exploró cómo podemos reemplazar Newline con espacio usando SED. Se logró de dos maneras diferentes. Esta guía también incluye otras herramientas relevantes que podemos usar para reemplazar Newline con Whitespace.

En lugar de usar comandos complejos que son difíciles de memorizar, usamos scripting bash para realizar muchas cosas en Linux. Aunque tiene el costo de cierto rendimiento, la flexibilidad y la usabilidad valen la pena. Obtenga más información sobre Bash Scripting para principiantes.