これは私が解読したいコードです:

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

回答

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

wコマンドは、一緒にログオンしているユーザーを表示しますいくつかの追加情報:

$ 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 

cut -d " " -f 1 -コマンドは、このスペースで区切られた最初の列(

は削除できます):

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

grep -v USERは削除します文字列USERを含むすべての行:

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

sort -u入力を字句的に並べ替え、重複する行を削除します。

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

現在ログインしているユーザーのユーザー名を一覧表示しようとしていると思います、ソートされたリストとして。

これを行う簡単な方法は、usersコマンドを使用することです。 usersは、ログオンしているすべてのユーザーを1行で出力しますが、tr " " "\n"sort -u 1行に1人のユーザーを取得するには:

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

これは、ww出力の最初の行の時刻は、現在の時刻が1桁か2桁かによって、パイプラインの出力の一部になる場合と含まれない場合があります。使用しているwの実装について)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です