Cómo reemplazar Newline con coma usando el comando 'sed'

Cómo reemplazar Newline con coma usando el comando 'sed'

Cualquier carácter o cadena se puede reemplazar utilizando el comando 'sed'. A veces, necesitamos reemplazar el carácter nuevo (\ n) en un archivo con una coma. En este artículo, utilizamos el comando 'sed' para reemplazar \ n con una coma.

Usar 'Sed' para reemplazar \ n con una coma

Pueden ocurrir muchos problemas al reemplazar \ n con una coma. Por defecto, cada línea termina con \ n al crear un archivo. El comando 'sed' puede dividirse fácilmente en \ n y 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 el \ n en la última línea del archivo, Gnu Sed puede evitar la impresión \ n. Además, 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 junto con este tutorial, cree un archivo de texto llamado Clientela.TXT con la siguiente información del cliente tabular.

IDENTIFICACIÓN Nombre Correo electrónico Teléfono
C01 Maryland. Rakib [email protected] 01856233238
C02 Meher afroze [email protected] 01733536342
C03 Fakrul Ahsan [email protected] 01934737248
C04 Helal Uddin [email protected] 01534895898
C05 Nusrat Jahan [email protected] 01866345254

Ejemplo 1: Reemplace \ n con una coma usando -z

La opción -z se usa para convertir \ n al carácter nulo (\ 0). El contenido del archivo se trata como una sola línea si no contiene caracteres nulos. El comando 'sed' convertirá la nueva línea en el carácter nulo y reemplazará cada \ n con una coma utilizando 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.

$ CAT CLIENTES.TXT
$ Sed -z 's/\ n/,/g; s/, $/\ n/' clientes.TXT

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

Ejemplo 2: Reemplace \ 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 usa para ramificar el contenido, norte se usa para ir a la siguiente línea y ps! se usa para evitar que la tarea de reemplazo se aplique a la última línea. El comando reemplazará cada \norte con una coma excepto la última línea.

$ CAT CLIENTES.TXT
$ sed ': a; n; $!BA; s/\ n/,/g 'clientes.TXT

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

Ejemplo 3: Reemplace \ n con una coma usando H, H, D, X e Y

Si quieres reemplazar \norte) con una coma en un archivo pequeño, luego se puede usar el siguiente comando 'sed'. Aquí, H se usa para agregar la última línea al texto de retención, 1H se usa para copiar cada línea del archivo al texto de retención desde la primera línea, ps!d se usa para eliminar todas las líneas excepto la última línea, X se usa para intercambiar el texto de retención y el espacio del patrón, y Y se usa para reemplazar cada \norte en el texto de retención con una coma.

$ CAT CLIENTES.TXT
$ sed 'h; 1h; $!d; x; y/\ n/,/'clientes.TXT

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

Ejemplo 4: Reemplace \ n con una coma usando -n, h, h, g y p

El comando 'sed' se puede usar para reemplazar \norte 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 retención, 1h se usa para copiar cada línea del archivo al texto de retención, ps se refiere a la última línea del archivo, gramo se usa para copiar desde el texto de retención y pag se usa para imprimir.

$ CAT CLIENTES.TXT
$ sed -n "h; 1H; \ $ g; s/\ n/,/g; p" clientes.TXT

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

Ejemplo 5: Reemplace \ n con una coma usando H, X, P

H, X y P han sido explicados en ejemplos anteriores. La primera expresión de búsqueda y reemplazo reemplazará cada \norte 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.

$ CAT CLIENTES.TXT
$ sed -n 'h; $ x; s/\ n/,/g; s/^, //; p;' clientes.TXT

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

Ejemplo 6: Reemplace \ n con una coma usando n y 'gato'

El comando 'CAT' se usa aquí para enviar el contenido del archivo al comando 'Sed', y norte se usa para moverse a la siguiente línea.

$ CAT CLIENTES.TXT
$ CAT CLIENTES.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 hacer utilizando otros comandos de Linux. Muchas opciones de comando, como H, N, H y X, 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.