grep '123\.123\.123\.123.*\(\.php\|\.html\)' logfile
A menos que, é claro, o .php
ou .html
preceda o endereço IP:
grep '\(\.php\|\.html\).*123\.123\.123\.123' logfile
Você sempre pode criar um regex que faça as duas coisas, mas uma opção simples é usar dois greps:
grep '123\.123\.123\.123' logfile | grep '\.php\|\.html'
Observe que \.
que eu esqueci originalmente corresponde a um ponto real, enquanto um ponto por si só corresponde a qualquer caractere. Pode ser mais fácil omitir o \
, pois é mais fácil de digitar e é improvável que cause problemas. Também grep -F
, como na resposta de Hauke, irá corresponder a strings fixas, não há necessidade de \
. grep -E
também pode ser usado para ativar expressões estendidas, o que significa que \
antes de cada parêntesis ou |
devem ser omitidos.