Windows-Äquivalent zu Linux „cat -n“?

Windows-Äquivalent zu Linux „cat -n“?

Unter Linux kann ich mit einem Befehl problemlos alle Dateien mit der daneben stehenden Zeilennummer anzeigen 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$ 

Und was ist mit Windows? Gibt es einen ähnlichen Befehl, der eine ähnliche Ausgabe erzeugt?

typeist einer der Windows-Befehle zum Anzeigen des Dateiinhalts.

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

Es gibt -ndarin jedoch keine Option.

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

TYPE [drive:][path]filename

C:\>

Das ist, was ich in Windows erwarte

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

Antwort1

Ohne die Installation von Drittanbietertools kann dies mithilfe von Powershell durchgeführt werden, allerdings ist die Skripterstellung etwas komplizierter, wie unten zu sehen ist. Das Schöne an diesem Skript ist, dass es mit jedem DOS-Befehl funktioniert, der eine Ausgabe erzeugt.

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

Notiz: Powershell hat den catBefehl, wie im Skript zu sehen, aber es fehlt die Zeilennummerierung. Es ist ein Alias ​​für den PowerShell-Befehl get-content.

Hier ist die Ausgabe:

1        Apples
2        Bananas
3        Carrots

Hier ist ein Beispiel mit einer Verzeichnisliste durch einfache Ausführung dirim Skript:

$i = 1; dir | % {$i++;"$($i-1) `t $_"}

Hier ist die Ausgabe:

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

Wenn die Zeilennummerierung bei 0 beginnen soll, setzen Sie $i = 0


Alternativ können Sie Programme von Drittanbietern catin Windows installieren. Es gibt viele Ports von UNIX-Befehlen für Windows, wie zum BeispielCygwinUndGnuWin32.

Nach der Installation der Cygwin-Basisinstallation:

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

Ausgaben:

 1  apple
 2  banana
 3  bread
 4  cake

Antwort2

Hier ist ein Windows-Äquivalent von cat -n

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

Das /nzeigt die Zeilennummern. Das .ist ein regulärer Ausdruck, der sogar auf eine leere Zeile zutrifft.

Um den Lesern deutlicher zu erklären, was dieser Befehl eigentlich bewirkt:

findstr.exe /n /r ".*"

verwandte Informationen