У меня есть файл журнала со списком многих записей. С помощью регулярного выражения 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
Вы также можете найти такие инструменты, как регулярное выражение полезно в изучении этого.