37

Что такое Windows-эквивалент команды Linux/Unix wc -l?

В основном, как вы подсчитываете количество строк, выводимых командой в командной строке Windows?

2 ответа2

47

Команда Linux/Unix "line count", wc -l , имеет в Windows эквивалент find /c /v "" .

Как это работает?

Согласно Рэймонду Чену из The Old New Thing, это функционирует как таковое, так как

Это особая особенность команды find что нулевая строка обрабатывается как никогда не совпадающая.

Инвертированный (/v) счет (/c), таким образом, эффективно подсчитывает все строки; следовательно, количество строк.

Пример использования

Чтобы подсчитать количество измененных файлов в рабочей копии Subversion:

svn status -q | find /c /v ""

Такая команда может использоваться, чтобы пометить сборку как "грязную", если счетчик не равен 0 , т. Е. В рабочей копии есть незафиксированные изменения.

Чтобы получить количество строк всех ваших файлов Java:

(for /r %f in (*.java) do @type "%f") | find /c /v ""

Команда find /c /v "" также может быть добавлена в командный файл при необходимости.  Не забудьте продублировать символы % в пакетных файлах.


PowerShell

Рабочим эквивалентом PowerShell является Measure-Object -line с некоторым дополнительным форматированием, например, (список каталогов для простоты),

(ls | Measure-Object -line).Lines
5

В PowerShell, чтобы получить количество строк всех ваших Java-файлов:

type *.java | Measure-Object -line

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .