NL эквивалентная команда в Windows?

Sep 27 2020

Я знаю, что есть альтернатива, такая как http://gnuwin32.sourceforge.net/packages/coreutils.htmили Cygwin в Windows.

Но есть ли в Windows какая-либо встроенная команда, эквивалентная Linux nl?

Вот пример cat& nlв Linux.

cat - объединить файлы и распечатать на стандартный вывод

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

nl - количество строк файлов

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

Ответы

2 ReddyLutonadio Sep 27 2020 at 17:55

Findstr с /nи /rпараметры близки к эквивалентной

  • /n: Печатает номер каждой совпадающей строки.
  • /r: Обрабатывает строки поиска как регулярные выражения. Это значение по умолчанию.

При использовании с подстановочными знаками он должен читать каждую строку файла, как это nlделает команда в Linux.

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

или же

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

Поиск в сочетании с параметрами /nи /vтакже должен отображать номера строк для каждой строки файла.

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

Если вы предпочитаете настраивать вывод, попробуйте использовать forцикл:

  • В вашей командной строке
set "_i="<nul & for /f tokens^=* %i in (file.txt )do @set /a "_i+=1">nul && <con: ^< nul cmd/v/c "echo\!_i! ^| %i"
  • В вашем файле bat / cmd:
@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