行番号を出力する -UNIX-

Unixでテキストファイルの出力に行番号を表示させるには以下のコマンドで表示できます。

<テキストファイルのサンプル:hello.c>

/* hello, world! と出力するプログラム */

#include <stdio.h>

int main(void)
{
    puts("hello, world!");
    return 0;
}

(1) catコマンドを使う

<実行例1>

$ cat -b hello.c
     1	/* hello, world! と出力するプログラム */

     2	#include <stdio.h>

     3	int main(void)
     4	{
     5	    puts("hello, world!");
     6	    return 0;
     7	}

$ cat -n hello.c
     1	/* hello, world! と出力するプログラム */
     2	
     3	#include <stdio.h>
     4	
     5	int main(void)
     6	{
     7	    puts("hello, world!");
     8	    return 0;
     9	}
    10	

-b : 非空白行に1から始まる番号を付ける。
-n : 1から始まる行番号を付ける。

(2) nlコマンドを使う

<実行例1>

$ nl -b a hello.c
     1	/* hello, world! と出力するプログラム */
     2	
     3	#include <stdio.h>
     4	
     5	int main(void)
     6	{
     7	    puts("hello, world!");
     8	    return 0;
     9	}
    10 

<実行例2>

$ nl -b a -s ": " hello.c
     1: /* hello, world! と出力するプログラム */
     2: 
     3: #include <stdio.h>
     4: 
     5: int main(void)
     6: {
     7:     puts("hello, world!");
     8:     return 0;
     9: }
    10: 

$ nl -b a -s "> " hello.c
     1> /* hello, world! と出力するプログラム */
     2> 
     3> #include <stdio.h>
     4> 
     5> int main(void)
     6> {
     7>     puts("hello, world!");
     8>     return 0;
     9> }
    10> 

<実行例3>

$ nl -b a -w 3 -s ": " -n rz hello.c
001: /* hello, world! と出力するプログラム */
002: 
003: #include <stdio.h>
004: 
005: int main(void)
006: {
007:     puts("hello, world!");
008:     return 0;
009: }
010: 

<実行例4>

$ nl -b a -w 2 -s ": " -v 0 hello.c
 0: /* hello, world! と出力するプログラム */
 1: 
 2: #include <stdio.h>
 3: 
 4: int main(void)
 5: {
 6:     puts("hello, world!");
 7:     return 0;
 8: }
 9: 

$ nl -b a -w 2 -s ": " -v 5 hello.c
 5: /* hello, world! と出力するプログラム */
 6: 
 7: #include <stdio.h>
 8: 
 9: int main(void)
10: {
11:     puts("hello, world!");
12:     return 0;
13: }
14: 

-b type 

「type」で指定した行番号を付ける。

a : すべての行に行番号を付ける。

t : 空白行以外の行に行番号を付ける。※デフォルト。「cat -b hello.c」と同じ表示。

n : 行番号を付けない。

-s sep

行番号と対応するテキスト行を分離する文字を指定する。

-n format

行番号の出力形式を指定する。

ln : 左詰め。

rn : 右詰め。空白桁を「0」表示しない。※デフォルト

rz : 右詰め。空白桁を「0」表示。

-v StartNum

行番号の初期値 ※デフォルトは「1」

[応用例] 行番号付のテキストファイルを作る

<実行例>

$ nl -b a -w 2 -s ": " hello.c > hello-num.c
$ cat hello-num.c
 1: /* hello, world! と出力するプログラム */
 2: 
 3: #include <stdio.h>
 4: 
 5: int main(void)
 6: {
 7:     puts("hello, world!");
 8:     return 0;
 9: }
10: 


# /(ルート)配下のディレクトリのリストを作る

$ ls -1 / | nl -w3 -s ": " -n rz > dir.txt
$ cat dir.txt
001: 1
002: bin
003: boot
004: dev
005: etc
006: home
007: lib
008: lib64
009: media
010: mnt
011: opt
012: proc
013: root
014: run
015: sbin
016: srv
017: sys
018: tmp
019: usr
020: var

ls -1 は1行につき1エントリを表示します。

コメント

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