Bash Pagina 60

De la Wiki Linux Advanced
Versiunea din 27 octombrie 2024 12:32, autor: Admin (discuție | contribuții) (→‎Sintaxă)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
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.


De lucrat

Să se modifice scriptul prezentat astfel încât fișierul citit să se introducă ca argument la lansarea scriptului. Exemplu:

./mapfile.sh exemplu.txt

Pagina anterioară | Următoarea pagină