Bash Pagina 100
Sari la navigare
Sari la căutare
Exemplu 1: Imprimarea numelui de login din /etc/passwd
- Fișier `users.awk`:
BEGIN { FS=":"; print "Nume de utilizator" } { print $1 } END { print "Total users =", NR }
Explicație:
- În acest exemplu, folosim un fișier `awk` (`users.awk`) cu trei blocuri de cod `BEGIN`, `{} (principal)` și `END`:
- `BEGIN { FS=":"; print "Nume de utilizator" }` — Setează separatorul de câmpuri (`FS`) ca fiind `:` și afișează un antet „Nume de utilizator”.
- `{ print $1 }` — În blocul principal, afișează primul câmp (`$1`) din fiecare linie, care reprezintă numele de utilizator.
- `END { print "Total users =", NR }` — În blocul `END`, afișează numărul total de linii procesate (variabila internă `NR`), adică numărul total de utilizatori.
Comandă de rulare:
$ awk -f users.awk /etc/passwd
Observații:
- FS — Este variabila internă pentru separatorul de câmpuri.
- NR — Este variabila internă care numără liniile procesate.
Această metodă ilustrează utilizarea fișierelor `awk` cu blocuri de cod pentru procesarea eficientă a fișierelor de sistem, cum ar fi `/etc/passwd`.