(Linux)nlコマンドで行番号を付与する

nlコマンドは入力されたテキストに行番号をつけるコマンドです。

bannerコマンドの出力に行番号をつけてみます。

~$ banner A | nl
     1     #
     2    # #
     3   #   #
     4  #     #
     5  #######
     6  #     #
     7  #     #

~$

各行に行番号が付与されました。

一方catコマンドは-nオプションをつけることによって、行番号をつけるフィルタになります。
nlコマンドで行うフィルタと何が違うでしょうか。

~$ banner A | cat -n
     1     #
     2    # #
     3   #   #
     4  #     #
     5  #######
     6  #     #
     7  #     #
     8  
~$

nlと異なり、8行目の行番号も表示されました。
つまり、空行にも行番号が付与されました。
次は、表示する文字を変えてもう一度nlの結果を確認してみます。

~$ banner = | nl


     1   #####

     2   #####



~$

やはり、nlはオプションを指定せずに使用すると、
文字が存在する行のみ行番号を付与するようです。

cat -nと同じ表示にするには、-baオプションをつけます。

~$ banner = | nl -ba
     1
     2
     3   #####
     4
     5   #####
     6
     7
     8
~$

コメント

タイトルとURLをコピーしました