Cómo reemplazar una nueva línea con una coma usando el comando `sed`

How Replace Newline With Comma Using Sed Command



Cualquier carácter o cadena se puede reemplazar usando el comando `sed`. A veces, necesitamos reemplazar el carácter de nueva línea ( n) en un archivo con una coma. En este artículo, usamos el comando `sed` para reemplazar n con una coma.

Usando `sed` para reemplazar n con una coma

Pueden ocurrir muchos problemas al reemplazar n con una coma. De forma predeterminada, cada línea termina con n al crear un archivo. El comando `sed` puede dividirse fácilmente en ny reemplazar la nueva línea con cualquier carácter. Se puede usar otro delimitador en lugar de n, pero solo cuando se usa GNU sed. Cuando falta n en la última línea del archivo, GNU sed puede evitar la impresión n. Además, n generalmente se agrega a cada salida consecutiva de `sed`.







Crear un archivo

En este artículo, le mostraremos cómo usar el comando `sed` para reemplazar n con una coma. Para seguir este tutorial, cree un archivo de texto llamado Clientes.txt con la siguiente información tabular del cliente.



IDENTIFICACIÓN Nombre Correo electrónico Teléfono
c01 Maryland. Rakib [correo electrónico protegido] 01856233238
c02 Meher Afroze [correo electrónico protegido] 01733536342
c03 Fakrul Ahsan [correo electrónico protegido] 01934737248
c04 Helal Uddin [correo electrónico protegido] 01534895898
c05 Nusrat Jahan [correo electrónico protegido] 01866345254

Ejemplo 1: Reemplaza n con una coma usando -z

La opción -z se usa para convertir n en el carácter nulo ( 0). El contenido del archivo se trata como una sola línea si no contiene ningún carácter nulo. El comando `sed` convertirá la nueva línea en el carácter nulo y reemplazará cada n con una coma usando el primer patrón de búsqueda y reemplazo. Aquí, 'g' se usa para buscar globalmente n. Con el segundo patrón de búsqueda y reemplazo, la última coma se reemplazará con n.



$gatoClientes.txt

$sed -Con 's / n /, / g; s /, $ / n /'Clientes.txt

La siguiente salida se producirá después de ejecutar los comandos.





Ejemplo 2: Reemplaza n con una coma usando a, b, $! y N

El comando `sed` se puede usar para reemplazar n con una coma usando a, b, N y $! . Aquí, a se usa para agregar tareas, b se utiliza para ramificar el contenido, norte se usa para ir a la siguiente línea, y $! se utiliza para evitar que la tarea de sustitución se aplique a la última línea. El comando reemplazará a cada orte con una coma excepto la última línea.



$gatoClientes.txt

$sed ': a; N; $! ba; s / n /, / g'Clientes.txt

La siguiente salida se producirá después de ejecutar los comandos.

Ejemplo 3: Reemplaza n con una coma usando H, h, d, xey

Si quieres reemplazar orte) con una coma en un archivo pequeño, entonces se puede usar el siguiente comando `sed`. Aquí, H se usa para agregar la última línea al texto de espera, 1h se usa para copiar cada línea del archivo al texto de espera desde la primera línea, $! d se usa para borrar todas las líneas excepto la última línea, x se utiliza para intercambiar el texto de retención y el espacio del patrón, y y se utiliza para reemplazar cada orte en el texto de espera con una coma.

$gatoClientes.txt

$sed 'H; 1h; $! D; x; y / n /, /'Clientes.txt

La siguiente salida se producirá después de ejecutar los comandos.

Ejemplo 4: Reemplaza n con una coma usando -n, H, h, g y p

El comando `sed` se puede utilizar para reemplazar orte con una coma con -norte opción, que evita la impresión automática. Como en el ejemplo anterior, H se usa aquí para agregar la última línea al texto de espera, 1h se utiliza para copiar cada línea del archivo al texto de espera, $ se refiere a la última línea del archivo, gramo se utiliza para copiar del texto de espera, y pag se utiliza para imprimir.

$gatoClientes.txt

$sed-norte'H; 1h;${g; s / orte/, / g; p} 'Clientes.txt

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

Ejemplo 5: Reemplaza n con una coma usando H, x, p

H, x y p se han explicado en ejemplos anteriores. La primera expresión de búsqueda y reemplazo reemplazará cada orte con una coma, y ​​la segunda expresión de búsqueda y reemplazo reemplazará una coma al comienzo de una línea con un espacio.

$gatoClientes.txt

$sed-norte'H; $ {x; s / n /, / g; s / ^, //; p;}'Clientes.txt

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

Ejemplo 6: Reemplaza n con una coma usando N y `cat`

El comando `cat` se usa aquí para enviar el contenido del archivo al comando` sed`, y norte se utiliza para pasar a la siguiente línea.

$gatoClientes.txt

$gatoClientes.txt| sed 'N; s / n /, /'

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

Conclusión

Puede ser necesario reemplazar n con una coma para transferir datos de un formato de archivo a otro. Este tipo de reemplazo también se puede realizar utilizando otros comandos de Linux. Muchas opciones de comando, como H, N, hyx, se pueden usar con el comando `sed` para completar esta tarea. Este tutorial repasa varias formas de usar el comando `sed` para reemplazar n con una coma.