Bash Pagina 53: Diferență între versiuni
Sari la navigare
Sari la căutare
Admin (discuție | contribuții) (Pagină nouă: Pagina anterioară | Următoarea pagină) |
Admin (discuție | contribuții) Fără descriere a modificării |
||
Linia 1: | Linia 1: | ||
== 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 <nowiki>[[ ! -f unelte.csv ]]<nowiki>; 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. | |||
[[Bash_Pagina_52|Pagina anterioară]] | [[Bash_Pagina_54|Următoarea pagină]] | [[Bash_Pagina_52|Pagina anterioară]] | [[Bash_Pagina_54|Următoarea pagină]] |
Versiunea de la data 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 <nowiki>! -f unelte.csv <nowiki>; 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.