/etc/passwd의 각 줄에 있는 필드 수가 올바른지 확인하십시오.

/etc/passwd의 각 줄에 있는 필드 수가 올바른지 확인하십시오.

나는 /etc/passwd, /etc/shadow, /etc/group 및 /etc/master.passwd의 필드 수를 확인하는 간단하고 이식 가능한 방법을 찾고 있습니다. FreeBSD, Linux 및 기타 Un*xes에서 실행됩니다.이 작업과 그 이상을 수행할 수 있지만 Linux 기반 시스템에서만 실행됩니다.

/etc/passwd에서 콜론으로 구분된 필드 수를 어떻게 계산합니까?

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

에 따르면"grep: 총 발생 횟수를 계산합니다.”, 나는 다음과 같은 빠른 트릭을 생각해 냈습니다.

cat /etc/passwd | while read LINE; do echo $LINE | grep -o ':'  |wc -l; done

하지만 더 나은 방법을 찾고 있어요.

답변1

awk -F: ' NF!=7 {print}' /etc/passwd

그것은 이루어져야합니다. 필드 개수가 7개가 아닌 경우 인쇄합니다.

관련 정보