grep как синтаксис с findstr - PullRequest
       36

grep как синтаксис с findstr

3 голосов
/ 12 декабря 2011

В последнее время я много использовал grep в linux, но теперь мне нужно использовать findstr для выполнения тех же задач на машине с Windows, и я не могу точно понять синтаксис.

Моя команда grep выглядит следующим образом:

grep "12/12/2011.\*followed by literal string" /myFile.txt

, поэтому он ищет указанную дату и буквенную строку, но может содержать смесь любых других символов между двумя поисковыми терминами, используя .\*

Кто-нибудь знает, как преобразовать это утверждение в findstr? спасибо

Ответы [ 2 ]

4 голосов
/ 12 декабря 2011

Команда findstr поддерживает параметр /R для указания строки поиска в качестве регулярного выражения. Однако это поведение по умолчанию, поэтому вам не нужно его указывать:

findstr "12/12/2011.*followed by literal string" myFile.txt

Вышеприведенное должно дать те же результаты, что и ваш grep пример.

1 голос
/ 17 июля 2014

Чтобы соответствовать буквенной строке, вы должны использовать флаг /C, например: /C:"Your literal string here" В противном случае пробел внутри вашего регулярного выражения считается как OR, например. это:

findstr "12/12/2011.*followed by literal string" myFile.txt

совпадает с

grep 12/12/2011.*followed|by|literal|string myFile.txt

Чтобы объединить оба, перенаправьте вывод одного в другой, например:

findstr "12/12/2011.*" myFile.txt | findstr /C:"followed by literal text"
...