Unique Lines: uniq
Comanda uniq elimină liniile duplicate adiacente. Acesta este un detaliu esențial:
funcționează doar pe linii care sunt una lângă alta. De aceea, aproape întotdeauna se face
mai întâi sort și apoi se trimite prin pipe spre uniq.
sort acces.log | uniq
Această comandă elimină toate duplicatele și afișează fiecare linie unică o singură dată.
Numărarea duplicatelor cu -c
sort acces.log | uniq -c
3 deck 1
1 deck 3
2 deck 7
Fiecare linie este precedată de numărul de apariții. E un tipar incredibil de util pentru analize rapide de date.
De ce sortăm întâi?
Fără sortare, uniq colapsează doar secvențele de linii identice consecutive:
alpha
alpha <- eliminata (duplicat adiacent)
beta
alpha <- NU este eliminata (nu este adiacenta)
Combinația sort | uniq este atât de des folosită încât merită să o ai în memoria musculară.
Misiune: Audit acces la uși
Securitatea a semnalat activitate neobișnuită pe Puntea 7. Fișierul acces_usa.log înregistrează fiecare membru al echipajului care a trecut prin ușă. Află cine a intrat și ieșit cel mai des, apoi arhivează bilanțul.
- Combină
sortșiuniq -cprintr-un pipe peacces_usa.logca să numeri de câte ori a accesat ușa fiecare membru al echipajului, și afișează. - Salvează acel bilanț într-un fișier nou numit
bilant-acces.txt. - Creează un folder numit
securitateși mutăbilant-acces.txtîn el. - Caută în bilanț
Vossca să confirmi membrul echipajului cu cele mai multe intrări.
Rezultat așteptat
securitate/bilant-acces.txt conține fiecare nume o singură dată, precedat de numărul de accesări; Voss are cele mai multe (3).