/etc/passwd에서 목록을 추출하려면 `cut`을 사용하세요.

/etc/passwd에서 목록을 추출하려면 `cut`을 사용하세요.

cut이 명령을 사용하여 파일에서 사용자 이름 및 로그인 셸 목록을 추출하려면 어떻게 해야 합니까 /etc/passwd? 여기서 생성된 사용자 이름과 로그인 셸은 단일 공백으로 구분됩니다.

로그인 셸을 기본 키로, 사용자 이름을 보조 키로 사용하여 결과 목록을 알파벳 오름차순으로 정렬합니다. 새로 생성된 파일에 결과를 저장합니다 ~/usershells.txt.

내가 시도한 명령은 다음과 같습니다.

cut -d /etc/passwd -k7 -k1 | sort > ~/usershells.txt

답변1

cut -f 1,7 -d: /etc/passwd | tr ":" " " | sort -k 2,2d -k 1,1d

그러면 사전 정렬을 사용하여 필드 2를 기본 키로, 필드 1을 보조 키로 정렬합니다.

열을 전환하려면 awk를 사용하세요.

cut -f 1,7 -d: /etc/passwd | tr ":" " " | sort -k 2,2d -k 1,1d | awk '{print $2,$1}'

다음을 얻으려면 awk를 사용하는 것이 좋습니다.

awk -F ":" '{print $7,$1}' /etc/passwd | sort -k 2,2d -k 1,1d

이것은 컷을 사용하지 않지만 컷 사용에 대한 요구 사항이 얼마나 어려운지 잘 모르겠습니다.

awk를 전혀 사용하고 싶지 않은 경우에도 열 순서를 바꿀 수 있습니다.
다음은 while 루프를 사용하여 읽는 예입니다.

cut -f 1,7 -d: /etc/passwd | tr ":" " " | sort -k 2,2d -k 1,1d | while read -r c1 c2;do echo "$c2 $c1";done

잘라내기 및 붙여넣기를 사용하는 또 다른 옵션:

paste <(cut -f7 -d: /etc/passwd) <(cut -f1 -d: /etc/passwd) | sort -k 2,2d -k 1,1d

또는 단일 공간이 꼭 필요한 경우:

paste -d " " <(cut -f7 -d: /etc/passwd) <(cut -f1 -d: /etc/passwd) | sort -k 2,2d -k 1,1d

> ~/usershells.txt를 사용하여 나열된 옵션을 파일로 리디렉션하세요.

물론 잘라내기 및 붙여넣기를 사용하여 원래 순서를 유지하고 셸에서 정렬할 수도 있습니다.

paste -d " " <(cut -f1 -d: /etc/passwd) <(cut -f7 -d: /etc/passwd) | sort -k 2,2d -k 1,1d > ~/usershells.txt

답변2

정렬을 위해서는 를 사용할 필요가 없으며 cut, sortwith를 사용하면 됩니다.관로:

sort -t " " -k 7 /etc/password |  sort -t " " -k 1

파이프라인 순서는 로그인 셸이 기본 키로 사용되고 사용자 이름이 보조 키로 사용되도록 보장합니다.

-t " "구분자 로 사용됩니다 space.

두 개의 열만 표시하려면 다음을 사용합니다 cut(정렬 후).

sort -t " " -k 7 /etc/password |  sort -t " " -k 1 | cut -f 1,7 -d:

마지막으로 출력을 파일에 저장할 수 있습니다 usershells.txt.

sort -t " " -k 7 /etc/password |  sort -t " " -k 1 | cut -f 1,7 -d: > ~/usershells.txt

기본 구분 기호가 다음과 같은 경우 사용할 :수 있습니다.trDanny_l말하는:

tr ":" " " /etc/password |  sort -t " " -k 7| sort -t " " -k 1 | cut -f 1,7 -d: > ~/usershells.txt

답변3

매개변수 f를 사용하면 필드를 선택할 수 있고 d는 구분 기호를 설정합니다.

 cut -f 1,7 -d: /etc/passwd

답변4

cut -f 1,7 -d: /etc/passwd | tr ":" " " | sort > ~/usershells.txt

관련 정보