Este cunoscut faptul că programele cu interfață grafică sunt mai convenabile de utilizat, deoarece sunt proiectate pentru cerințe ridicate, în plus terminalul vă permite să rezolvați anumite sarcini mult mai rapid. Astfel, există un utilitar wc, acesta poate număra numărul de linii dintr-un fișier. Numărul de linii nu spune prea multe, dar în cazul în care mai multe comenzi sunt combinate, puteți număra liniile, luând în considerare parametrii necesari. Cum să numărați liniile într-un fișier Linux? Să evidențiem câteva exemple simple, dar eficiente de utilizare a comenzilor grep, sed și awk.
Ne-am uitat deja la comanda WC, acum ar trebui să ne familiarizăm cu unul dintre parametrii săi cheie -l
. Acesta numără trecerile la o linie nouă, adică se numără întreaga linie, inclusiv liniile goale. Comanda face față sarcinii mai rapid decât toate celelalte, dar numai anumite șiruri sunt posibile - cu o anumită condiție.
$ wc -l name_file
$ grep -c $ name_file
$ sed -n $= name_file
$ awk 'END{ print NR }' name_file
După cum putem vedea, rezultatul este același, dar comanda wc a avut nevoie de mai puțin timp pentru a finaliza sarcina. Celelalte comenzi sunt aplicabile pentru interogări complexe. Comanda grep vă permite să găsiți șiruri numai cu text: grep -c 'text' nume_fișier
.
$ grep -c 'text' file_name
Comanda grep gestionează expresii regulate, astfel încât puteți combina mai multe condiții AND, OR, NOT.
Când sed efectuează prelucrarea textului, dar este mult mai ușor să efectuați o numărătoare finală a liniilor cu comanda wc. Puteți șterge toate liniile care au mai puțin de trei caractere. iar cazurile complexe sunt numărate fără comentarii.
$ sed -r '/^.{,3}$/d' file_name | wc -l
Dacă sarcina este simplă. ea poate fi realizată în alte moduri. Comanda awk va fi mai simplă și mai ușor de înțeles.
$ awk 'length >3' file_name | wc -l
Pentru un exemplu vizual al comenzii awk, să efectuăm numărarea șirurilor de caractere în timp ce căutăm valoarea necesară în fișierul tabel csv.
În exemplu, să numărăm numărul de rânduri cu valoarea celui de-al doilea parametru mai mare de 50.
$ awk '$2+0 > 50' file_name | wc -l
Adăugați 0 la expresie pentru a elimina toate expresiile non-numerice.