Linux の `cat -n` に相当する Windows はありますか?

Linux の `cat -n` に相当する Windows はありますか?

Linux では、コマンドを使用して、行番号の付いたファイルを簡単に表示できますcat -n

sh-4.4$ cat test   
line 1             
line 2             
line 3             
sh-4.4$ 

sh-4.4$ cat test -n
     1  line 1     
     2  line 2     
     3  line 3     
sh-4.4$ 

Windows ではどうでしょうか? 同様の出力を生成する同様のコマンドはありますか?

typeファイルの内容を表示するための Windows コマンドの 1 つです。

C:\>type test.txt
line 1
line 2
line 3
C:\>

-nしかし、そこには選択肢がありません。

C:\>type /?
Displays the contents of a text file or files.

TYPE [drive:][path]filename

C:\>

これがWindowsに期待していることです

C:\>(windows command to view and print line number) test.txt
     1  line 1     
     2  line 2     
     3  line 3     
C:\>

答え1

サードパーティのツールをインストールしなくても、Powershell を使用してこれを行うことができますが、以下に示すように、スクリプトが少し複雑になります。このスクリプトの優れた点は、出力を生成する任意の DOS コマンドで機能することです。

$i = 1; 猫の餌.txt | % {$i++;"$($i-1) `t $_"}

注記:catスクリプトに見られるように、Powershell には コマンドがありますが、行番号がありません。これは PowerShell コマンドのエイリアスですget-content

出力は次のとおりです。

1        Apples
2        Bananas
3        Carrots

dir以下は、スクリプトを実行するだけでディレクトリを一覧表示する例です。

$i = 1;ディレクトリ | % {$i++;"$($i-1) `t $_"}

出力は次のとおりです。

1        backgrounds
2        boot
3        inetpub
4        PerfLogs
5        Program Files
6        Program Files (x86)
7        Riot Games
8        Users
9        Windows
10       Reflect_Install.log

行番号を0から開始したい場合は、$i = 0を設定します。


あるいは、Windowsにサードパーティのcatプログラムをインストールすることもできます。Windowsに移植されたUNIXコマンドは数多くあります。シグウィンそしてGNUWin32 の

Cygwin の基本インストール後:

C:\cygwin64\bin\cat -n food.txt

出力:

 1  apple
 2  banana
 3  bread
 4  cake

答え2

Windows版のcat -nに相当するコマンドは次の通りです。

findstr /n . "C:\Temp\myfile.txt"

は行/n番号を表示します。 は、.空白行にも一致する正規表現です。

そのコマンドが実際に何をするのかを読者にもっと明確に伝えるには、次のようにします。

findstr.exe /n /r ".*"

関連情報