아아 | 아아은 무슨 뜻인가요? cut -d " " -f 1 - grep 및 sort로 무엇을 해야 합니까?

아아 | 아아은 무슨 뜻인가요? cut -d " " -f 1 - grep 및 sort로 무엇을 해야 합니까?

제가 해독하려는 코드는 다음과 같습니다.

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

답변1

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로그인한 모든 사용자를 한 줄에 출력하지만 이를 파이프하여 tr ' ' '\n'sort -u줄에 한 명의 사용자를 얻을 수 있습니다.

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

또한 이는 생성된 형식에 의존하지 않습니다 w. 출력의 첫 번째 줄의 시간은 현재 시간이 한 자리인지 두 자리인지, 구현 w에 따라 파이프라인 출력의 일부일 수도 있고 아닐 수도 있습니다. w사용).

관련 정보