Bash Pagina 60

De la Wiki Linux Advanced
Sari la navigare Sari la căutare

Citirea dintr-un fișier folosind mapfile

Ce este mapfile?

mapfile este o comandă în Bash care permite citirea rapidă a liniilor dintr-un fișier într-un tablou (matrice). Fiecare linie a fișierului devine un element al matricei.

Sintaxă

mapfile -t array < filename
  • -t oprește adăugarea caracterului de newline (\n) la fiecare element al matricei.
  • array este numele matricei în care vor fi stocate liniile din fișier.
  • filename este numele fișierului din care se citesc datele.

Exemplu de utilizare

Să presupunem că avem un fișier numit exemplu.txt cu următorul conținut:

Linia 1
Linia 2
Linia 3

Script Bash

Următorul script va citi liniile din exemplu.txt și le va stoca într-o matrice:

#!/bin/bash
# Citirea liniilor din fișier în matrice
mapfile -t linii < exemplu.txt
# Afișarea liniilor citite
for linie in "${linii[@]}"; do
   echo "$linie"
done
#similar se poate afișa tot fișierul astfel, fără utilizare for
echo ${linii[@]}

Explicația scriptului

  • Declarația mapfile: Comanda mapfile -t linii < exemplu.txt citește toate liniile din exemplu.txt și le stochează în matricea linii.
  • Afișarea liniilor: Bucla for parcurge fiecare element al matricei linii și îl afișează pe ecran.

Concluzie

Utilizarea comenzii mapfile este o modalitate eficientă de a citi date din fișiere și de a le organiza în matrice în Bash. Aceasta simplifică gestionarea datelor citite și permite manipularea ușoară a fiecărei linii.


Pagina anterioară | Următoarea pagină