Знаете ли вы похожую программу для wc (команда подсчета слов unix) в Windows?

Быстрый поиск дает мне tawbaware wc, но он не принимает stdout в качестве входного потока, что означает, что я не могу использовать pipe в сеансе DOS.

Замечания:

Я не могу установить Cygwin или использовать PowerShell (что позволило бы|foreach-object {(get-content $_).count}")

Пакеты unxutils и и gnuwin32 могут иметь эту функцию...

10 ответов

Решение

Вы можете использовать оригинальный "wc", созданный для Windows: он является частью пакета coreutils. Получить самую последнюю версию Coreutils.

Еще проще, find /c, например:

netstat -an | find /c "ESTABLISHED"

find /c: Отображает только количество строк, содержащих строку.

Для инструментов Unix на окнах ваши варианты:

msys - similair to unixtools, изначально только несколько инструментов сборки, необходимых для работы с mingw (нативная версия gcc), теперь имеет почти все инструменты cygwin

cygwin - почти каждый для unix, сложная установка и требует dll для обеспечения unix api. Могут возникнуть проблемы при смешивании инструментов, созданных с помощью разных версий cygwin.dll.

Unixtools - не все инструменты, предоставляемые Cygwin, но скомпилированные изначально

ch - почти все инструменты Unix, скомпилированные изначально. И оболочка, которая включает интерпретатор 'c'. Стандартная версия бесплатна (пиво), но не с открытым исходным кодом.

uwin - свободен от ATT, включает оболочку korn, если вам нравятся подобные вещи.

mks Коммерческий порт инструментов unix. Довольно дорого, учитывая бесплатные версии доступны.

Пытаться:

find /c /v "~any string that will never occur~"

Эта команда дает счетчик всех строк, которые НЕ содержат строку поиска. Тестируя его, я вижу проблему в том, что он не считает пустые строки в конце файла.

В моем пакете unxutils есть количество слов:

C: \ Java \ vssWorkspace \ java \ portlets_core> wc -l C: \ Users \ malp \ AppData \ Local \ Temp__portlets41366.html 79717 C: \ Users \ malp \ AppData \ Local \ Temp__portlets41366.html

Кроме того, страница unxutils указывает, что wc.exe доступен. Вы ищете что-то, что wc.exe не обрабатывает?

Ну, извините, что не согласен, но у unxutils есть wc.exe

Попробуйте!

Ура,

Вот два других (чисто Windows CMD) способа подсчета строк в журнале git:

set n=0
for /f %a in ('git log --oneline') do set /a n=n+1

Или же:

git log --online | find /v /c ""

Преимущество первого состоит в том, что вы получаете значение в переменной среды, с которой можно что-то делать. Но он может работать медленно с огромными файлами.

Я нашел эту тему и был очарован инновационными решениями для эмуляции туалета с использованием только инструментов, встроенных в Windows. Это стимулировало ответ на мою потребность в подсчете символов, чтобы я мог одержать победу в битве с максимальным символом поля веб-формы предупреждение.

Если вам нужен wc -c, который дает количество байтов, вы можете использовать DEBUG, утилиту DOS (которая не указана командой HELP) в Windows. Количество символов должно равняться количеству байтов минус количество строк, умноженное на размер новой строки, которая является одним символом новой строки для Unix ('\n') или двумя символами, возврат каретки + перевод строки ('\cr' и '\lf' или '\0Dh' '0Ah'для простого текстового файла DOS.

Счетчик символов = Количество байтов - (Количество строк * sizeof("\n"))

Для этого откройте окно командной строки (Пуск-> Выполнить-> Открыть: "cmd"), запустите отладку в текстовом файле и проверьте регистр CX, который содержит длину загруженного файла:

Отладка [путь] -rcx CX [длина файла в шестнадцатеричном виде]: -q

Затем запустите поиск по файлу:

найти /v /c "notlikelystring" ---------- [путь]: [количество строк]

И применить формулу.

Существует также WinXs 4.2, это условно-бесплатная программа, так что вы можете увидеть, будет ли она делать то, что вам нужно.

Не могли бы вы установить язык сценариев для этого? Это может быть излишним, но если оно выполнит работу с минимумом суеты...

getgnuwin32 облегчает загрузку и установку gnuwin32 (которая, безусловно, имеет утилиту wc).

Другие вопросы по тегам