Bash Pagina 60: Diferență între versiuni

De la Wiki Linux Advanced
Sari la navigare Sari la căutare
(Pagină nouă: ==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 di...)
 
 
(Nu s-a afișat o versiune intermediară efectuată de același utilizator)
Linia 27: Linia 27:
     echo "$linie"
     echo "$linie"
  done
  done
#similar se poate afișa tot fișierul astfel, fără utilizare for
echo ${linii[@]}


'''Explicația scriptului'''
'''Explicația scriptului'''
Linia 37: Linia 39:
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.
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: <br>
./mapfile.sh exemplu.txt


[[Bash_Pagina_59|Pagina anterioară]] | [[Bash_Pagina_61|Următoarea pagină]]
[[Bash_Pagina_59|Pagina anterioară]] | [[Bash_Pagina_61|Următoarea pagină]]

Versiunea curentă din 27 octombrie 2024 12:32

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ă