Use grep com ou [duplicado]

0

Como faço para pesquisar em um arquivo de texto com grep para a ocorrência de uma palavra ou outra palavra?

Eu quero filtrar o arquivo de log do apache para todas as linhas, incluindo "bot" ou "spider"

cat /var/log/apache2/access.log|grep -i spider

mostra apenas as linhas, incluindo "spider", mas como eu adiciono "bot"?

    
por rubo77 26.06.2013 / 10:22

4 respostas

5

use o regex clássico:

grep -i 'spider\|bot'

ou regex estendido (ou mesmo perl regex -P ):

grep -Ei 'spider|bot'

ou vários padrões literais (mais rápido que uma expressão regular):

grep -Fi -e 'spider' -e 'bot'
    
por 26.06.2013 / 10:29
1
cat /var/log/apache2/access.log | grep -E 'spider|bot'

Com a opção -E, você ativa a expressão regular estendida, em que é possível usar | para uma OR lógica.

Além disso, em vez de invocar outro processo - cat - você pode fazer isso com

grep -E 'spider|bot' /var/log/apache2/access.log
    
por 26.06.2013 / 10:33
0

$ cat /var/log/apache2/access.log|grep -i 'spider \ | bot'

O acima vai fazer o trabalho.

Você também pode usar o egrep

$ cat /var/log/apache2/access.log|egrep -i 'spider | bot'

egrep é grep estendido (grep -E). Você não terá que usar \ before | se você usa egrep.

    
por 26.06.2013 / 12:50
-1

Você pode usar o egrep em vez disso:

cat /var/log/apache2/access.log|egrep -i 'spider|bot'
    
por 26.06.2013 / 10:27