2

Команда Windows FINDSTR полезна для просеивания больших объемов данных; он отфильтровывает строки текста, которые соответствуют или не соответствуют указанному шаблону или строке (например, GNU/BSD grep).

Но он отказывается выводить строки длиннее определенной длины. Есть ли (нативная) альтернатива, исправление или обходной путь?

2 ответа2

0

Лучшей встроенной альтернативой будет PowerShell Select-String (или его псевдоним sls)

Командлет Select-String выполняет поиск текста и текстовых шаблонов во входных строках и файлах. Вы можете использовать Select-String похожий на grep в UNIX или findstr.exe в Windows.

Select-String

Просто имейте в виду, что Select-String выполняет поиск без учета регистра по умолчанию, в отличие от большинства альтернатив

0

FINDSTR SS64 - побеги и ограничения длины говорит:

Пределы длины линии

Файлы, указанные в качестве аргумента командной строки или с помощью параметра /F:FILE , не имеют известного ограничения длины строки. Поиск был успешно выполнен для файла размером 128 МБ, который не содержал ни одного <LF>.

Данные по каналам и перенаправленный ввод ограничены 8191 байтами на строку. Этот лимит является "особенностью" FINDSTR. Это не присуще трубам или перенаправлению. FINDSTR, использующий перенаправленный ввод stdin или piped, никогда не будет соответствовать ни одной строке размером> = 8 Кбайт. Строки> = 8k генерируют сообщение об ошибке для stderr, но значение ERRORLEVEL по-прежнему равно 0, если строка поиска найдена хотя бы в одной строке хотя бы одного файла.

Кредиты:
Дейв Бенхэм - Список недокументированных функций и ограничений FINDSTR от StackOverflow

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