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

おすすめ記事