Назад | Перейти на главную страницу

Regex соответствует первому слову и любому слову

У меня есть файл журнала со списком многих записей. С помощью регулярного выражения grep я хочу сопоставить первое слово и другое слово, которое может быть где угодно в строке.

Например, если бы я указал "user1", поиск будет искать:

grep -E '^(IP_CONNECT|IP_DISCONNECT) user1' file.txt

Однако это не будет совпадать, если user1 не находится в начале строки, тогда как я хочу сопоставить его, если он появляется где-нибудь в строке. Как это сделать?

Я думаю, вы имеете в виду, что хотите сопоставить строки, которые начинаются либо с «IP_CONNECT», либо с «IP_DISCONNECT», за которыми следует один или несколько из [большинства] любых символов, за которыми следует «user1».

grep -E '^(IP_CONNECT|IP_DISCONNECT).+user1' file.txt

Вы также можете найти такие инструменты, как регулярное выражение полезно в изучении этого.