Bash Pagina 53: Diferență între versiuni

De la Wiki Linux Advanced
Sari la navigare Sari la căutare
Fără descriere a modificării
 
Linia 16: Linia 16:
  #!/bin/bash
  #!/bin/bash
  # Verificăm dacă fișierul există
  # Verificăm dacă fișierul există
  if <nowiki>[[ ! -f unelte.csv ]]<nowiki>; then
  if <nowiki>[[ ! -f unelte.csv ]]</nowiki>; then
     echo "Fișierul unelte.csv nu a fost găsit!"
     echo "Fișierul unelte.csv nu a fost găsit!"
     exit 1
     exit 1
Linia 27: Linia 27:
  do
  do
     # Sărim linia de antet
     # Sărim linia de antet
     if [[ $produs != "produs" ]]; then
     if <nowiki>[[ $produs != "produs" ]]</nowiki>; then
         printf "%-20s %-10s %-10s\n" "$produs" "$cantitate" "$pret"
         printf "%-20s %-10s %-10s\n" "$produs" "$cantitate" "$pret"
     fi
     fi

Versiunea curentă din 27 octombrie 2024 11:33

Exercițiul 6: Citirea și formatarea unui fișier CSV folosind while

Acest exercițiu demonstrează cum să folosești o buclă while pentru a citi dintr-un fișier CSV și a formata conținutul într-un tabel.

Scenariul

Scriptul va citi un fișier numit unelte.csv care conține informații despre produse, cantități și prețuri. Apoi, va formata și va afișa conținutul acestuia sub formă de tabel.

Exemplu de fișier CSV (unelte.csv)

produs,cantitate,pret
Ciocan,10,15.5
Șurubelniță,25,8.0
Fierăstrău,5,30.0
Clei,100,2.5

Script

#!/bin/bash
# Verificăm dacă fișierul există
if [[ ! -f unelte.csv ]]; then
   echo "Fișierul unelte.csv nu a fost găsit!"
   exit 1
fi
# Afișăm antetul tabelului
printf "%-20s %-10s %-10s\n" "Produs" "Cantitate" "Preț"
echo "----------------------------------------------"
# Citim fișierul CSV
while IFS=',' read -r produs cantitate pret
do
   # Sărim linia de antet
   if [[ $produs != "produs" ]]; then
       printf "%-20s %-10s %-10s\n" "$produs" "$cantitate" "$pret"
   fi
done < unelte.csv

Explicație

  • Scriptul începe prin a verifica dacă fișierul unelte.csv există. Dacă nu, afișează un mesaj de eroare și iese.
  • Afișăm antetul tabelului folosind printf pentru a formata textul pe coloane.
  • Bucla while folosește IFS=',' pentru a separa câmpurile din fișierul CSV pe baza virgulelor.
  • Citim câte o linie din fișier și, dacă nu suntem pe prima linie (antet), afișăm informațiile despre produs, cantitate și preț într-un format tabelar.

Acest exercițiu ajută la înțelegerea modului în care se pot citi și formata datele din fișiere CSV folosind Bash.

Pagina anterioară | Următoarea pagină