行番号を出力する -Windows-

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

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

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

#include <stdio.h>

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

(1) findコマンドを使う

<実行例1:ファイル名を指定>

d:\tmp>find /v /n "" hello.c

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

<実行例2:|(パイフ)を使って読み込む>

d:\tmp>type hello.c | find /v /n ""
[1]/* hello, world! と出力するプログラム */
[2]
[3]#include <stdio.h>
[4]
[5]int main(void)
[6]{
[7]    puts("hello, world!");
[8]    return 0;
[9]}
/v 指定した文字列を含まない行すべて。
/n 行番号を表示。

(2) findstrコマンドを使う

<実行例1:ファイル名を指定>

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

<実行例2:|(パイフ)を使って読み込む>

d:\tmp>type hello.c | findstr /n /r ".*"
1:/* hello, world! と出力するプログラム */
2:
3:#include <stdio.h>
4:
5:int main(void)
6:{
7:    puts("hello, world!");
8:    return 0;
9:}

<実行例3:コマンドの出力結果に行番号を付ける>

d:\tmp>dir | findstr /n /r ".*"
1: ドライブ D のボリューム ラベルがありません。
2: ボリューム シリアル番号は A20A-4387 です
3:
4: d:\tmp のディレクトリ
5:
6:2017/07/20  17:33    <DIR>          .
7:2017/07/20  17:33    <DIR>          ..
8:2017/07/17  15:54                 0 a.txt
9:2017/07/17  15:54                 0 b.txt
10:2017/07/20  17:34               131 hello.c
11:               3 個のファイル                 131 バイト
12:               2 個のディレクトリ  226,077,540,352 バイトの空き領域
/n 一致する各行の前に行番号を出力します。
/r 検索文字列を正規表現として使用します。
. 任意の1文字に一致する。
*直前の文字(*の右側の文字)が ゼロ個以上の繰り返しに一致。

「.*」はすべての文字に一致することになるので、 結果的にすべての行の先頭に行番号を出力します。

(3) fcコマンドを使う

<実行例>

d:\tmp>fc /n a.txt hello.c
ファイル a.txt と HELLO.C を比較しています
***** a.txt
***** HELLO.C
    1:  /* hello, world! と出力するプログラム */
    2:
    3:  #include <stdio.h>
    4:
    5:  int main(void)
    6:  {
    7:      puts("hello, world!");
    8:      return 0;
    9:  }
*****

/n : 行番号を表示します。

コメント

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