Как вернуть строку с 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

Кроме того, кажется, что он даже не чувствителен к регистру по умолчанию

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