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