/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내 this 에 다음과 같은 옵션이 있습니다 .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

관련 정보