Acesta este codul pe care doresc să îl descifrez:

w | cut -d " " -f 1 - | grep -v USER | sort -u 

Răspuns

w | cut -d " " -f 1 - | grep -v USER | sort -u 

Comanda w afișează utilizatorii care sunt conectați împreună cu câteva informații suplimentare:

$ w 12:59:25 up 50 days, 21:45, 4 users, load average: 1.02, 1.03, 1.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT bill pts/12 xxx.xxx.xxx.xxx 12:55 0.00s 0.03s 0.03s tmux bill pts/14 tmux(64415).%0 12:55 0.00s 0.05s 0.03s w dave pts/18 yyy.yyy.yyy.yyy Wed09 23:52m 1:15 1:07 vim clear_snapshots.pl dave pts/2 yyy.yyy.yyy.yyy Tue14 23:48m 3.65s 3.65s -bash 

Comanda cut -d " " -f 1 - extrage prima coloană separată de spațiu (- la sfârșit poate fi eliminat):

$ w | cut -d " " -f 1 USER bill bill dave dave 

grep -v USER elimină toate liniile care conțin șirul USER:

$ w | cut -d " " -f 1 | grep -v USER bill bill dave dave 

sort -u își sortează intrarea lexicografic și elimină liniile duplicat:

$ w | cut -d " " -f 1 | grep -v USER | sort -u bill dave 

Cred că încearcă să listeze numele de utilizator ale utilizatorilor care sunt conectați în prezent , ca listă sortată.

Un mod mai simplu de a face acest lucru este doar folosind comanda users. users va afișa toți utilizatorii conectați într-o singură linie, dar puteți trece acest lucru prin tr " " "\n" și sort -u pentru a obține un utilizator pe fiecare linie:

users | tr " " "\n" | sort -u 

Acest lucru nu depinde în plus de formatul produs de w (ora de pe prima linie a ieșirii w poate sau nu să facă parte din ieșirea conductei dvs. în funcție de faptul dacă ora curentă a zilei este una sau două cifre, despre ce implementare a w utilizați).

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *