как вернуть строку с findstr в windows с соответствующей подстрокой - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть строка в файле, как,

async.AsyncTranslationThread - processPart: Finished Processing job number: J215577 partID: 151269

еще много.

Я хочу вернуть только ту строку, в которой есть подстрока Законченный номер задания на обработку

Я написал команду findstr с регулярным выражением вроде

findstr /R "^.*Finished\sProcessing\sjob\snumber.*$" filename

Я ничего не получу взамен, что будет изменением в регулярном выражении, чтобы получить строку с подстрокой в ​​ней?

1 Ответ

0 голосов
/ 14 ноября 2018

Если вы посмотрите на документацию , 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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...