Как вернуть строку с findstr в windows с соответствующей подстрокой
У меня есть строка в файле, как,
async.AsyncTranslationThread - processPart: Finished Processing job number: J215577 partID: 151269
еще много.
Я хочу вернуть только ту строку, которая имеет подстроку Finished Processing номер задания
Я написал команду findstr с регулярным выражением, как
findstr /R "^.*Finished\sProcessing\sjob\snumber.*$" filename
Я ничего не получаю взамен, что бы изменить регулярное выражение, чтобы получить строку с подстрокой в нем?
1 ответ
Если вы посмотрите на документацию, findstr
не поддерживает большинство традиционных функций регулярных выражений, таких как \s
, который вы используете. Это даже не поддерживает +
Квантор!
В следующей таблице перечислены метасимволы, которые принимает findstr.
| Meta Character | Value | . | Wildcard: any character | * | Repeat: zero or more occurrences of the previous character or class | ^ | Line position: beginning of the line | $ | Line position: end of the line | [class] | Character class: any one character in a set | [^class] | Inverse class: any one character not in a set | [x-y] | Range: any characters within the specified range | \x | Escape: literal use of a metacharacter x | \<string | Word position: beginning of the word | string\> | Word position: end of the word
Вы можете легко обойтись без этого, и он все равно примет это, даже если есть несколько пробелов или вкладок:
findstr /c:"Finished Processing job number" filename
Кроме того, кажется, что он даже не чувствителен к регистру по умолчанию