/etc/passwd 파일에서 사용자 이름 추출

/etc/passwd 파일에서 사용자 이름 추출

/etc/passwd명명된 데이터베이스에서 모든 사용자 이름을 추출한 다음 출력을 알파벳 역순으로 정렬하려면 어떤 명령을 사용합니까 ?

답변1

cut -d: -f1 /etc/passwd | sort -r

또는

awk -F: '{print $1}' /etc/passwd | sort -r

실제로 nsswitch를 사용하는 시스템(예: 요즘 대부분의 (전부는 아니지만) Linux 배포판 및 기타 많은 *nix)을 사용하는 경우 다른 가능한 사용자 계정 데이터 소스가 많이 있으므로 getent passwd읽기만 하는 것이 아니라 사용해야 합니다. /etc/passwd(LDAP 및 nis 또는 yp 포함):

getent passwd | cut -d: -f1 | sort -r
getent passwd | awk -F: '{print $1}' | sort -r

답변2

홈 디렉토리가 /home에 있는 실제 사람들을 나열하려면 다음과 같이 목록을 필터링할 수 있습니다. grep home /etc/passwd|cut -d: -f1

답변3

sed 's/:.*//' /etc/passwd | sort -r

sed~이다에스트레메편집하다itor는 텍스트 편집 명령을 텍스트 데이터 스트림에 적용하는 데 사용됩니다. sed사용일반적인 표현텍스트 줄 내의 패턴과 일치합니다. 일반적인 표현grep, awk, emacs, vi, perl, python 등과 같은 많은 Unix/Linux 명령에 공통됩니다. 따라서 정규식을 배우면 다양한 명령을 사용하는 능력이 향상됩니다.

위의 sed 명령은 s텍스트의 각 줄에서 기능을 실행(교체)합니다. 기본 s명령은 다음과 같이 작동합니다.

    `s/regular expression/replacement/`

sed이 명령의 정규식은 :.*줄의 첫 번째 콜론(있는 경우)과 일치하며, 그 뒤에는 줄의 (묵시적인) 끝에 0개 이상의 *다른 문자( )가 옵니다. 이와 일치하는 모든 항목을 아무것도 아닌 것으로 바꾸고 결과를 인쇄합니다..sed

즉, 이 sed 명령은 줄을 인쇄하기 전에 첫 번째 콜론부터 줄 끝까지 모든 것을 삭제합니다.

관련 정보