/etc/passwd의 사용자가 다른 파일에 있는지 확인하는 명령

/etc/passwd의 사용자가 다른 파일에 있는지 확인하는 명령

/etc/passwd 파일을 쿼리하여 200 미만의 모든 사용자 UIDS를 보고 해당 사용자가 /etc/ftpusers와 같은 파일에 있는지 확인하는 것이 가능합니까?

지금까지 UID가 200 미만인 모든 사용자를 나열하기 위해 다음 명령을 성공적으로 작성했지만 나열된 사용자가 /etc/ftpusers 파일에 있는지 확인하는 방법을 잘 모르겠습니다.

grep -Ev "^\+" /etc/passwd | awk -F: '($3 < 200) {print $1}'

파일에 사용자가 없으면 차이를 출력해야 합니다. for 문을 사용해 보았지만 제대로 작동하지 않습니다.

답변1

aix diff동일한 옵션이 있는지는 모르겠지만 실행 시 GNU diff이 옵션(기본 셸)을 사용하면 작동합니다 .linuxkshaix

diff -I "^#" --new-line-format="" --unchanged-line-format="" <(awk -F: '$3 < 200  {print $1}' /etc/passwd) /etc/ftpusers

diff명령이 다른 경우 루프를 사용해 보십시오.

for u in $(awk -F":" '$3 < 200 {print $1}' /etc/passwd); do
        count=$(grep -scx "$u" /etc/ftpusers)
        [ "$count" -gt 0 ] || echo "$u"
done

나는 그것을 테스트했고 ksh작동합니다.

grep또한 오류 메시지 계산 및 억제를 지원하는 분산 오순절에서 사용할 수 있는 옵션 도 확인했습니다 .grepaix-c-s

관련 정보