nlコマンドは、
Unix系
オペレーティングシステムにおいて、ファイルの内容や標準入力から受け取ったテキストに
行番号を付与して標準出力に表示するコマンドです。このコマンドは、テキストファイルの内容を可読性を高めるために
行番号を付加したり、他のコマンドの出力を加工する際に役立ちます。
歴史
nlコマンドは、System V release 2で初めて登場しました。1987年の第2版以降、X/Open Portability Guideの一部となり、その後
POSIX.1やSingle
UNIX Specificationなどの標準にも組み込まれ、現在に至るまで広く利用されています。
GNU coreutilsに含まれるnlコマンドは、Scott BartramとDavid MacKenzieによって実装されました。
機能と使い方
nlコマンドは、基本的な動作として、入力されたテキストの各行の先頭に
行番号を付与します。
行番号はデフォルトでは右詰めで表示され、設定によって表示形式を変更することも可能です。ファイル名を指定して実行することで、そのファイルの内容に
行番号を付加して出力することができます。また、パイプを使用して他のコマンドの出力をnlコマンドに渡すことも可能です。
例えば、以下のコマンドは`filename`というファイルの内容に
行番号を付加して表示します。
bash
nl filename
また、以下のようにpsコマンドの出力をnlコマンドに渡すことで、psコマンドの結果に
行番号を付加して表示することができます。
bash
ps aux | nl
さらに、特定のパターンにマッチする行のみに
行番号を付与することも可能です。例えば、次のコマンドは、行頭が文字Aで始まる行のみに
行番号を付加して表示します。これは、grepコマンドと組み合わせることで実現できます。
bash
grep '^A' filename | nl
この例では、grepコマンドで'A'から始まる行を抽出し、その結果をnlコマンドで処理しています。nlコマンドは、grep -n のように、
行番号を表示したい場合に代替として利用できます。
関連コマンド
nlコマンドと関連性の高いコマンドとして、以下のようなものがあります。
wc (Unix)
テキストファイルの行数、単語数、バイト数をカウントするコマンドです。nlコマンドがテキストに
行番号を付与するのに対し、wcコマンドはテキストの統計情報を表示します。
cat (Unix)
ファイルを連結して標準出力に表示するコマンドです。catコマンドはファイルの内容を表示する基本的なコマンドですが、cat -n のように実行することで、nlコマンドと同様に
行番号付きで表示する実装もあります。
まとめ
nlコマンドは、テキストファイルやコマンドの出力に
行番号を付加するためのシンプルなコマンドですが、テキストデータの処理やデバッグにおいて非常に有用です。標準入力からパイプを通じてデータを受け取ることができるため、他のコマンドと組み合わせて柔軟に活用できます。grepコマンドと組み合わせることで、特定パターンにマッチする行のみに番号を振るなど、応用的な使い方も可能です。テキストデータの可読性を高めたり、行を特定する際に、nlコマンドは非常に便利なツールと言えるでしょう。
UNIX%E3%83%A6%E3%83%BC%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AE%E4%B8%80%E8%A6%A7'>
UNIXユーティリティの一覧