
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?
type
ist einer der Windows-Befehle zum Anzeigen des Dateiinhalts.
C:\>type test.txt
line 1
line 2
line 3
C:\>
Es gibt -n
darin 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 cat
Befehl, 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 dir
im 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 cat
in 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 /n
zeigt 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 ".*"