2017-11-23 6 views
0

리눅스 bash는 스크립트를 처리하고, 그들이 나를 추천 :보기 로그인하지 않은 사용자가 나는 bash는 스크립트를하고있는 중이 야 내가 운동에서, 이것에 대한 일반적 데몬 프로세스입니다 로그인하지 않은 사용자 프로세스를, 보여 essaying하고

명령 줄을 처리하기 위해 cut 명령을 사용합니다. 은 필터를 통해 목록의 다른 열을 선택할 수 있습니다.

내가 사용 :

ps -A | grep -v w 
ps -A | grep -v who 

ps -A | grep -v $USER 

하지만 모든 사용자의 모든 프로세스가 출력 파일에 인쇄되는 모든 옵션을 시도하고 난 단지 로그인하지 않은 사용자의 프로세스를합니다.

도와 주셔서 감사합니다.

감사합니다.

답변

1

grep -v w 정규 표현식 w (단순히 문자열 w을 포함하는 모든 것과 일치하는 행)을 제거합니다. 명령을 실행하려면w을 사용해야합니다. 지시 사항에 암시 된 것처럼 출력을 후 처리하려면 cut을 사용해야합니다.

답변을 완전히 제공하지 않으려면 여기에 대략적인 의사 코드가 있습니다.

w | cut something >tempfile 
ps -A | grep -Fvf tempfile 

당신이 파이프에 w의 후 처리 결과를 전달할 수 있지만, 표준 입력이 이미 ps -A에 연결되어 있다면 그것은 좋은 것입니다. process substitution을 지원하는 셸이 있다면이를 사용할 수 있습니다.

ps -A | grep -Fvf <(w | cut something) 

불행하게도, w의 출력이 제대로 기계가 읽을 수 없습니다 - 당신이 적절도, 헤더 행 (들)을 잘라하는 것이 좋습니다. 당신은 아마 과정에서 나중에 awk는 조금 배울 수 있습니다 (내 컴퓨터에 두 개의 헤더 행은. 너의이 다를 수 있습니다.가), 그러나 그때까지,

ps -A | grep -Fvf <(w | tail -n +3 | cut something) 

같은 아마 뭔가이 아직하지 않습니다 가능한 모든 상황을 완벽하게 처리합니다. 누군가의 계좌 이름이 grep이라면?

+0

w | cut something> tempfile, 뭔가 $ USER가 될 수 있겠는가?, 그걸로 실행하지 않고 모든 프로세스를 보여 줌 – AER

+1

아니,'뭔가'는 옵션을 잘라내어 어떤 필드를 잘라내고 어떻게 할 것인지 알려주는 옵션을위한 자리 표시 자다. 필드 구분 기호를 찾으십시오. 매뉴얼 페이지를 참조하십시오. – tripleee

+0

Hello @triplee cut -d를 사용했는데 "파일 이름이 존재하지 않습니다"라는 오류 메시지가 나타납니다 – AER