はじめに
こんにちは!今回はnlコマンドについて解説します。
nlはファイルの各行に番号を付与するコマンドです。cat -nでも行番号が表示できますが、nlはより細かい制御ができます。
ログファイルの確認やコードレビュー時に、行番号があると超便利ですね。
nlコマンドとは
nlは、テキストファイルの各行に番号を付けて表示するコマンドです。“number lines"の略ですね。
単に番号を付けるだけでなく、特定の行パターンだけに番号を付けたり、フォーマットを変更したり、複数行ごとに番号を付けたりできます。コードレビューやドキュメント作成時に活躍します。
基本構文
|
|
ファイルを指定しないと標準入力から読み込みます。
主なオプション
| オプション | 説明 |
|---|---|
-b { a | t | n | p正規表現 } |
番号を付ける行を指定 |
-d 区切り文字 |
セクション区切り文字を指定 |
-f フォーマット |
行番号のフォーマット(ln、rn、rz) |
-i 数値 |
行番号のインクリメント値 |
-n フォーマット |
行番号の配置(ln、rn、rz) |
-s 区切り文字 |
行番号とテキストの区切り文字 |
-v 開始番号 |
行番号の開始値 |
-w 幅 |
行番号の幅(桁数) |
使用例
例1: 基本的な行番号付け
|
|
実行結果:
|
|
ファイルの各行に番号が付きます。デフォルトでは右揃えで5桁。
例2: 空行にも番号を付ける
|
|
実行結果:
|
|
-b aで空行にも番号を付けます。デフォルトは-b t(空行は番号なし)。
例3: 番号を左揃えにする
|
|
実行結果:
|
|
-n lnで行番号を左揃えにします。
例4: 番号の区切り文字を変更
|
|
実行結果:
|
|
-s ': 'で行番号とテキストの区切り文字をコロンに変更。
例5: 開始番号を指定
|
|
実行結果:
|
|
-v 10で行番号を10から開始します。
例6: 行番号の幅を指定
|
|
実行結果:
|
|
-w 3で行番号を3桁に指定します。
例7: インクリメント値を指定
|
|
実行結果:
|
|
-i 2で行番号を2ずつ増加させます。
例8: 正規表現で番号を付ける行を限定
|
|
実行結果:
|
|
-b p'^a'でaで始まる行だけに番号を付けます。
例9: パイプとの組み合わせ
|
|
大きなファイルの最初の20行に行番号を付けて表示します。
例10: ログファイルの確認
|
|
エラーログの最後の50行に行番号を付けて表示。行番号があれば問題の場所を特定しやすい。
Tips・注意点
cat -n との違い
cat -nでも行番号を付けられますが、nlの方が柔軟です。
|
|
空行の扱い
デフォルトでは空行に番号が付きません。必要に応じて-b aを使います。
|
|
正規表現の活用
-b p正規表現で、条件に合う行だけに番号を付けられます。
|
|
実践的な使い方
コードレビュー時の行番号付け
|
|
スクリプトを行番号付きで確認。特定の行番号を指摘しやすい。
ログファイルの問題個所特定
|
|
ステータスコード500のエラーを行番号付きで表示。
複数ファイルの比較
|
|
2つのファイルを行番号付きで比較。
テキストファイルの特定行を参照
|
|
レポートのSummaryセクションを行番号付きで表示。
まとめ
nlコマンドのポイント:
- テキストファイルに行番号を付与する便利なコマンド
-b a: 空行にも番号を付ける-n ln: 行番号を左揃えにする-s: 区切り文字を変更-v: 開始番号を指定-b p正規表現: 条件に合う行だけに番号を付ける- よく使う組み合わせ:
nl -b a,nl -n ln -s ': '
コードレビューやログ確認時に行番号があると、「〇〇行目の問題」という指摘ができるようになります。超便利ですね!