私は/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つでない場合は印刷します。