nl äquivalenter Befehl in Windows?

Sep 27 2020

Ich weiß, dass es eine Alternative gibt wie http://gnuwin32.sourceforge.net/packages/coreutils.htmoder Cygwin in Windows.

Aber gibt es in Windows einen eingebauten Befehl, der Linux entspricht nl?

Hier ist das Beispiel von cat& nlunter Linux.

cat - verkettet Dateien und druckt auf der Standardausgabe

wolf@linux:~$ cat file.txt line 1 line 2 line 3 wolf@linux:~$ 

nl - Anzahl der Zeilen von Dateien

wolf@linux:~$ nl file.txt 1 line 1 2 line 2 3 line 3 wolf@linux:~$ 

Antworten

2 ReddyLutonadio Sep 27 2020 at 17:55

Findstr mit /nund /rParameter sind nahezu gleichwertig

  • /n: Druckt die Zeilennummer jeder übereinstimmenden Zeile.
  • /r: Verarbeitet Suchzeichenfolgen als reguläre Ausdrücke. Dies ist die Standardeinstellung.

Bei Verwendung mit Platzhaltern sollte jede Zeile einer Datei wie unter nlLinux gelesen werden .

findstr /n /r ^.*$ file.txt

oder

findstr /n /r ^?*$ file.txt

Suchen in Kombination mit den Parametern /nund /vsollte auch Zeilennummern für jede Zeile einer Datei anzeigen.

find /n /v "" file.txt
ItWasn'tMe Sep 30 2020 at 07:53

Wenn Sie die Ausgabe lieber anpassen möchten, verwenden Sie eine forSchleife:

  • In Ihrer Befehlszeile
set "_i="<nul & for /f tokens^=* %i in (file.txt )do @set /a "_i+=1">nul && <con: ^< nul cmd/v/c "echo\!_i! ^| %i"
  • In Ihrer bat / cmd-Datei:
@echo off && setlocal

set "_i="<nul & for /f tokens^=* %%i in (file.txt
)do set /a "_i+=1" && <con: ^< nul cmd /v /c "echo\!_i!  ^|  %%i"

endlocal & goto=:EOF