確認したい/etc/passwd
$ cat -n /etc/passwd
1 ##
2 # User Database
3 #
4 # Note that this file is consulted directly only when the system is running
5 # in single-user mode. At other times this information is provided by
6 # Open Directory.
7 #
8 # See the opendirectoryd(8) man page for additional information about
9 # Open Directory.
10 ##
11 nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false
ご覧のとおり、最初の10行はコメントアウトされているため、次のコマンドが必要です。
$ cat -n [11:] /etc/passwd
nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false
root:*:0:0:System Administrator:/var/root:/bin/sh
daemon:*:1:1:System Services:/var/root:/usr/bin/false
_uucp:*:4:4:Unix to Unix Copy Protocol:/var/spool/uucp:/usr/sbin/uucico
これを達成する方法は?
答え1
ファイルのコメント化された行を計算せずに無視するには、次の手順を実行する必要があります。
grep -n -v ^# /etc/passwd
grepには、-n
行番号を付けるcatと同じオプションがあります。 (出力形式は多少異なりますが、grepは行番号と内容の間にコロンを追加し、数字も埋めません。)
この-v
オプションは、grepに実行された行を印刷するように指示します。いいえ正規表現を一致させます。
そして、正規表現は行^#
の先頭のテキストだけと一致します。#
逆に、最初の10行を常にスキップしたい場合は、tail +11
これを行う必要があります。パイプを介して接続できますcat -n
。
cat -n /etc/passwd | tail +11
tail
詳細とより具体的なオプションについては、マニュアルページを参照してください-n
(下図のように省略可能)。