本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「nl」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、テキストファイルを行番号付きで出力する「nl」コマンドです。
「nl」は、テキストファイルを行番号付きで出力するコマンドです。「cat」コマンドの「-n」オプション(本連載第1回参照)でも行番号を付けることができますが、nlコマンドではより細かい設定が可能です。
nlコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-i行数 | --line-increment=行数 | 行番号の増分を指定する(デフォルトは1) |
-l行数 | --join-blank-lines=行数 | 指定した数以下の空行を1つとして数える |
-w幅 | --number-width=幅 | 行番号を表示する列の幅を指定する |
-nフォーマット | --number-format=フォーマット | 行番号の出力形式を「ln」「rn」「rz」で指定する(ln=左ぞろえ/0で埋めない、rn=右ぞろえ/0で埋めない、rz=右ぞろえ/0で埋める) |
-s文字列 | --number-separator=文字列 | 行番号の後ろに文字列を加える |
-v行番号 | --starting-line-number=行番号 | 論理改ページの先頭行番号を指定する |
-d区切り | --section-delimiter=区切り | 論理ページの区切り記号を指定する(2文字で指定、1文字だけ指定した場合2文字目は「:」になる) |
-p | --no-renumber | 論理改ページで行番号をリセットしない |
-bスタイル | --body-numbering=スタイル | 本文の行番号のスタイルを指定する(スタイルの指定は下の表参照) |
-fスタイル | --footer-numbering=スタイル | フッタの行番号のスタイルを指定する |
-hスタイル | --header-numbering=スタイル | ヘッダの行番号のスタイルを指定する |
オプション | 意味 |
---|---|
a | 全ての行に対して行番号を付ける |
t | 空行以外に対して行番号を付ける |
n | 空行に対して行番号を付ける |
pパターン | パターン(基本正規表現)に一致する行に対して行番号を付ける |
【※】オプションを何も指定しなかった場合「-v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn」で実行される
「nl ファイル名」で、指定したテキストファイルを行番号付きで出力します。ファイルは複数指定することが可能で、複数指定した場合は連結されて、通しの行番号が付けられます。
nl ファイル名
cat ファイル名 | nl
(テキストファイルを行番号付きで出力する)(画面1)
「-w」オプションで行番号の桁数、「-n」オプションで右寄せ/左寄せなどのフォーマットを指定できます。デフォルトの桁数は6桁です。
フォーマットは「ln」「rn」「rz」のいずれかで指定します。lnは左ぞろえ、rnとrzは右ぞろえで、rzは「000001」のようにゼロで埋められます。
また、行番号の後ろにはタブ(TAB)記号が出力されますが、これを変更したい場合は「-s」オプションを指定します。例えば、「1:」のように数字の後ろに「:」を出力したい場合は「-s:」、「1: 」のように「:」と空白を出力したい場合は引用符を使い「-s": "」のように指定します。
nl -w3 -nrn ファイル名
(3桁で数字を左寄せにして出力する)
nl -w3 -nrz ファイル名
(3桁で「001」のようにゼロ入りで出力する)
nl -w3 -nrz -s": " ファイル名
(「区切り文字「:」と空白にする)
以下の画面2では、オプションを試しやすくするため「cat ファイル名 | nl」のように、catコマンドでファイルを出力してnlコマンドに渡しています。
「-bpパターン」のように指定することで、“条件に合った行にだけ行番号を付ける”ことができます(画面3)。「-b」は行番号のスタイルを指定するオプションで、「p」は“パターンに合う行のみ”という意味です。
例えば、「aliasという文字列を含む行だけ」であれば「-bpalias」のように指定します。「-bp"alias"」のように引用符(")を付けても構いません。
なお、「-b」オプションを指定していない場合、行番号は“空行以外”に対して付けられます(「-bt」相当)。全ての行に行番号を付けたい場合は「-ba」、空行のみに行番号を付けたい場合は「-bn」とします。
パターンには基本正規表現が使用できます。例えば、「aliasから始まる行」であれば、「-bp^alias」とします(画面4)。また、「#から始まらない行」であれば「-bp^[^#]」とします(本連載第10回参考)
nlコマンドでは区切りとなる行を入れておくことで、テキストファイルを「ヘッダ」「本文」「フッタ」に分けて、それぞれの出力スタイルを決めることができます。
区切りとなる行は2文字で指定します。デフォルトは「\:」で、「\:\:\:」という行をヘッダの開始、「\:\:」という行を本文の開始、「\:」をフッタの開始行と見なします。区切り文字は「-d」オプションで変更できます。
出力スタイルは、ヘッダ部分を「-h」オプション、本文を「-b」オプション、フッタ部分を「-f」オプションで指定します。何も指定しなかった場合は、本文の空行以外に行番号が出力されます。
以下の画面5では表示を見やすくするために、行番号の後の区切り文字を「-s": "」と指定しています。
ヘッダ、本文、フッタそれぞれで全ての行に行番号を付ける場合は、「-ha -ba -fa」のように指定します。また、「-p」オプションで通しの行番号となります(画面6)。
PC-9801NからのDOSユーザー(LinuxはPC-486DXから)。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、ライターとして活動。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.