Convierta varias filas en una sola fila en Linux

En este artículo, veremos cómo convertir múltiples filas en una sola fila usando Linux.

Aquí está el archivo para la demostración:

Método 1: Usando Pure Bash

Convirtamos varias filas en una sola fila usando bash puro, ya que es el shell predeterminado, tenga en cuenta que el shell bash no depende de otras utilidades, ya que solo utiliza comandos integrados:

Usamos el archivo de entrada anterior como plantilla para realizar nuestra operación deseada, es decir, convertir múltiples filas en una sola fila en Linux.

Sintaxis: $(readarray -t ARRAY < archivo de entrada.txt; IFS=”; echo “${ARRAY[*]}”)

Dónde:

  • readarray es un comando incorporado de Bash. Fue introducido en Bash ver.4. El readarray se utiliza para leer entradas de entrada estándar en una variable de array: ARRAY.
  • La opción -t es útil para eliminar
  • El IFS es una variable de shell especial que es una abreviatura de Internal Field Separator. Aquí, asignamos el IFS con un solo carácter, vacío o ‘,’ depende de nuestros requisitos.
  • ${ARRAY[*]} significa todos los elementos encerrados en la variable ARRAY, al usar el comando echo, se imprimirán todos los elementos de ARRAY que están separados por las variables IFS.

Ejemplo:

$ (readarray -t ARRAY < newfile.txt; IFS=''; echo "${ARRAY[*]}")

Producción :

Método 2: Usando el comando tr

tr es un comando útil para eliminar y traducir caracteres específicos extraídos del archivo de entrada estándar.

Sintaxis: $tr [OPCIÓN] SET1 [SET2]

El comando tr simplemente puede hacer este trabajo simplemente eliminando los saltos de línea del contenido del archivo.

Ejemplo:

$ tr -d '\n' ',' <newfile.txt

Producción :

Método 3: Usar el comando Pegar

Pastecommand es útil para unir archivos horizontalmente al generar líneas que consisten en líneas de cada archivo especificado.

Sintaxis: pegar [OPCIÓN]… [ARCHIVOS]…

El comando pegar se usa para fusionar líneas que pertenecen a múltiples archivos de entrada. Esta operación de fusión por defecto se ejecuta de tal manera que las entradas en la primera columna pertenecen al primer archivo, y las de la segunda columna son para el segundo archivo. La opción -s puede permitirle fusionar líneas por filas.

Ejemplo:

$ paste -sd ',' newfile.txt 

Producción : 

Método 4: Usando el comando sed

Sed en Unix es una abreviatura de stream editor, que es útil para ejecutar diferentes tipos de operaciones como buscar, encontrar y reemplazar, insertar o eliminar. 

Sintaxis: sed OPTIONS… [SCRIPT] [INPUTFILE…] 

Aquí, el lema de usar sed one-liner es: agregue cada línea en el espacio del patrón, al final reemplace todos los saltos de línea con la string dada. 

Ejemplo:

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

Producción : 

Publicación traducida automáticamente

Artículo escrito por ravi.geek24 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *