Comando mapfile en Linux con ejemplos

mapfile también llamado (read array) es un comando del shell Bash que se usa para leer arrays. Lee líneas de la entrada estándar en una variable de array. Además, el archivo de mapa debe leer desde la sustitución (< <) y no desde una tubería. Además, mapfile es más rápido y conveniente en comparación con un ciclo de lectura. Devuelve 1 o 0 dependiendo de si el comando fue exitoso o no. Si no se especifica ningún nombre de array, se utiliza la variable predeterminada MAPFILE como variable de array de destino.

Sintaxis: mapfile [array]

Alternativamente, podemos usar read array [arrayname] en lugar de mapfile.

Ejemplo 1. Lectura de una array de un archivo:

$ mapfile MYFILE < example.txt
$ echo ${MYFILE[@]}
$ echo ${MYFILE[0]}

Producción:

mapfile command in Linux with examples

Ejemplo 2. Capture la salida en una array:

$ mapfile GEEKSFORGEEKS < <(printf "Item 1\nItem 2\nItem 3\n")
$ echo  ${GEEKSFORGEEKS[@]}

Aquí, Item1, Item2 y Item 3 se almacenaron en la array GEEKSFORGEEKS.

Producción:

mapfile command in Linux with examples

Ejemplo 3. Elimina las líneas nuevas y almacena el elemento usando -t:

$ mapfile -t GEEKSFORGEEKS< <(printf "Item 1\nItem 2\nItem 3\n")
$ printf "%s\n" "${GEEKSFORGEEKS[@]}"

Producción:

mapfile command in Linux with examples

Ejemplo 4. Lee el número especificado de líneas usando -n:

$ mapfile -n 2 GEEKSFORGEEKS < example.txt
$ echo  ${GEEKSFORGEEKS[@]}

Lee como máximo 2 líneas. Si se especifica 0, se consideran todas las líneas.

Producción:

mapfile command in Linux with examples

Publicación traducida automáticamente

Artículo escrito por sangy987 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 *