Как получить хотя бы один символ и двойную косую черту - PullRequest
0 голосов
/ 11 марта 2019

У меня есть файл .gnmap, который содержит строки, подобные следующим:

Host: x.x.x.x () Ports: PORT/open/tcp//PROTOCOL//SERVICE/

Я бы хотел grep для "/open/tcp//at_least_one_character//at_least_one_character/"

Я пытался использовать grep "/open/tcp//[a-zA-Z]//[a-zA-Z]//", но он ничего не возвращает.

Как я могу исправить grep выше?

Спасибо.

1 Ответ

0 голосов
/ 11 марта 2019

Ваше регулярное выражение соответствует только одному символу после //
Чтобы соответствовать хотя бы одному символу, используйте +.Он сообщает grep о необходимости одного или нескольких вхождений предыдущего символа или класса символов.

 grep -E "/open/tcp//[a-zA-Z]+//[a-zA-Z]+/"

-E указывает, что grep использует расширенное регулярное выражение.Вы можете иметь подобное поведение без опции -E, но вам нужно поставить обратную косую черту +, чтобы придать ей особое значение.

 grep  "/open/tcp//[a-zA-Z]\+//[a-zA-Z]\+/"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...