行番号を付けて出力する(nlコマンド)
Contents
概要
ファイルに行番号をつけて出力する方法は、catコマンド、awkコマンド、nlコマンドで出力できます。本記事では、「nlコマンド」を利用した場合の方法を説明します
catコマンドで行番号を表示
cat -n <ファイル名> で行番号をつけてで出力できます
$ cat -n test.log 1 2016-02-01 13:48:01,137 error 2 2016-02-01 13:48:01,137 hogehoge 3 2016-02-01 13:48:01,137 linux 4 2016-02-01 13:48:01,137 apache 5 2016-02-01 13:48:01,137 log
awkコマンドで行番号を表示
awk '{print NR, $0}’ <ファイル名> で行番号をつけてで出力できます
$ awk '{print NR, $0}' test.log 1 2016-02-01 13:48:01,137 error 2 2016-02-01 13:48:01,137 hogehoge 3 2016-02-01 13:48:01,137 linux 4 2016-02-01 13:48:01,137 apache 5 2016-02-01 13:48:01,137 log
nlコマンドで行番号を表示
nl <ファイル名> で行番号をつけてで出力できます
$ nl test.log 1 2016-02-01 13:48:01,137 error 2 2016-02-01 13:48:01,137 hogehoge 3 2016-02-01 13:48:01,137 linux 4 2016-02-01 13:48:01,137 apache 5 2016-02-01 13:48:01,137 log
nlコマンド オプション
nlコマンドでは、色々なオプションがあります。代表的なオプションを紹介します
空行は番号を付ける
nlコマンドで、オプションなしだと、空行には番号つけいないで出力されますが、
nl -b a <ファイル名> とすれば、空行にも番号がつきます
$ nl test1.log 1 2016-02-01 13:48:01,137 error 2 2016-02-01 13:48:01,137 hogehoge 3 2016-02-01 13:48:01,137 linux 4 2016-02-01 13:48:01,137 apache 5 2016-02-01 13:48:01,137 log $ nl -b a test1.log 1 2016-02-01 13:48:01,137 error 2 2016-02-01 13:48:01,137 hogehoge 3 4 2016-02-01 13:48:01,137 linux 5 6 7 2016-02-01 13:48:01,137 apache 8 2016-02-01 13:48:01,137 log
初期の番号を任意の番号から始める
通常では番号の始まりは「1」から開始されますが、
nl -v <任意の番号> <ファイル名> とすれば、初期の番号を指定して出力できます
$ nl -v 5 test.log 5 2016-02-01 13:48:01,137 error 6 2016-02-01 13:48:01,137 hogehoge 7 2016-02-01 13:48:01,137 linux 8 2016-02-01 13:48:01,137 apache 9 2016-02-01 13:48:01,137 log
左側に詰めて出力
nlコマンドでは、出力された番号の左側には空白が何個ありますが、この空白を左詰めで出力するには
nl -n ln <ファイル名> とすれば、左側に詰めて出力されます
$ nl -n ln test.log 1 2016-02-01 13:48:01,137 error 2 2016-02-01 13:48:01,137 hogehoge 3 2016-02-01 13:48:01,137 linux 4 2016-02-01 13:48:01,137 apache 5 2016-02-01 13:48:01,137 log
番号の増加分を指定する
nl -i <増加分> <ファイル名> とすれば、行番号の数字の増加分を指定できます
$ nl -i 4 test.log 1 2016-02-01 13:48:01,137 error 5 2016-02-01 13:48:01,137 hogehoge 9 2016-02-01 13:48:01,137 linux 13 2016-02-01 13:48:01,137 apache 17 2016-02-01 13:48:01,137 log
先頭を0で埋める
nl -n rz <ファイル名> とすれば、先頭の空白を0で埋めることが出来ます
$ nl -n rz test.log 000001 2016-02-01 13:48:01,137 error 000002 2016-02-01 13:48:01,137 hogehoge 000003 2016-02-01 13:48:01,137 linux 000004 2016-02-01 13:48:01,137 apache 000005 2016-02-01 13:48:01,137 log
先頭からの空白の文字数を指定する
nl -n rz -w <空白文字数指定> <ファイル名> とすれば、先頭の空白の文字数を指定出来ます
初期値の文字数は5文字となっています
$ nl -n rz test.log 000001 2016-02-01 13:48:01,137 error 000002 2016-02-01 13:48:01,137 hogehoge 000003 2016-02-01 13:48:01,137 linux 000004 2016-02-01 13:48:01,137 apache 000005 2016-02-01 13:48:01,137 log 000006 2016-02-01 13:48:01,137 error 000007 2016-02-01 13:48:01,137 hogehoge 000008 2016-02-01 13:48:01,137 linux 000009 2016-02-01 13:48:01,137 apache 000010 2016-02-01 13:48:01,137 log $ nl -n rz -w 3 test.log 001 2016-02-01 13:48:01,137 error 002 2016-02-01 13:48:01,137 hogehoge 003 2016-02-01 13:48:01,137 linux 004 2016-02-01 13:48:01,137 apache 005 2016-02-01 13:48:01,137 log 006 2016-02-01 13:48:01,137 error 007 2016-02-01 13:48:01,137 hogehoge 008 2016-02-01 13:48:01,137 linux 009 2016-02-01 13:48:01,137 apache 010 2016-02-01 13:48:01,137 log
ディスカッション
コメント一覧
まだ、コメントがありません