Простое решение для этой задачи фильтрации строк:
%SystemRoot%\System32\findstr.exe /B /R "CHAR\> INT\>" "source.txt" | %SystemRoot%\System32\findstr.exe /R /V "_[0123456789][0123456789]*$" >"out.txt"
Первый FINDSTR поиск с чувствительным к регистру r egular выражением в файле source.txt
для строк b , начинающихся либо со слова CHAR
, либо со слова INT
. Строка, начинающаяся, например, с CHARACTER
или INT32
, игнорируется первой FINDSTR .
Примечание: Пробел в строке поиска, заключенный в "
без /C:
слева от строки поиска интерпретируется как логический ИЛИ .
Найденные строки перенаправляются с |
в качестве ввода для второго FINDSTR .
Второй FINDSTR выполняет поиск с учетом регистра r egular выражение для строк, заканчивающихся подчеркиванием и одной или несколькими цифрами, и выводит результат с ошибкой v , который означает, что все строки NOT заканчиваются подчеркиванием и одной или больше цифр.
Примечание: Можно также использовать [0-9]
вместо [0123456789]
, но [0-9]
также включает в себя три символа ¹²³
.
Вывод второго FINDSTR перенаправляется с помощью >
в файл out.txt
.
Откройте командную строку , запустите findstr /?
и прочитайте вывод Справка для получения более подробной информации об используемых опциях и регулярных выражениях.
См. также статью Microsoft о Использование операторов перенаправления команд для объяснения операторов перенаправления |
и >
.