O comando mapfile
é utilizado no Bash para ler linhas de um arquivo e armazená-las em um array. Isso é útil quando você precisa manipular ou processar dados linha por linha de forma eficiente.
A sintaxe básica do comando mapfile
é a seguinte:
mapfile [opções] [argumentos]
-t
: Remove a nova linha do final de cada linha lida.-n <n>
: Lê no máximo <n>
linhas do arquivo.-O <n>
: Define o índice inicial do array onde as linhas serão armazenadas.mapfile linhas < arquivo.txt
Neste exemplo, todas as linhas do arquivo.txt
são lidas e armazenadas no array linhas
.
mapfile -t linhas < arquivo.txt
Aqui, as linhas do arquivo.txt
são lidas e armazenadas no array linhas
, mas sem as novas linhas no final.
mapfile -n 5 linhas < arquivo.txt
Este comando lê apenas as primeiras 5 linhas do arquivo.txt
e as armazena no array linhas
.
mapfile -O 1 linhas < arquivo.txt
Neste caso, as linhas do arquivo.txt
são armazenadas no array linhas
, começando a partir do índice 1.
-t
se você não precisar das novas linhas, pois isso pode evitar problemas ao processar os dados.${#linhas[@]}
para garantir que você leu o número esperado de linhas.mapfile
com outros comandos como grep
ou awk
para filtrar ou processar dados antes de armazená-los no array.