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.