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