Como pesquisar com “grep” usando strings em um arquivo

Conteúdo

Bash Shell

Grep é uma ferramenta incrível para pesquisar arquivos de log em busca de informações úteis, mas e se você quiser pesquisar um arquivo de registro usando uma lista gigante de palavras-chave de outro arquivo? Por sorte, ele também tem esse recurso embutido.

Isso aconteceu comigo quando eu queria extrair uma lista de todos os URLs solicitados por um grande bloco de IP que estava atacando abusivamente nosso servidor. Depois de identificar e criar a lista de mil endereços IP, necesitaba extraer las URL del archivo de registro principal para identificar los recursos más solicitados.

Para fazer isso, querrá utilizar el argumento -f, que le posibilita especificar un archivo para la lista de patrones a buscar.

-f FILE, --file=FILE
    Obtain patterns from FILE, one per line.  The empty file
    contains zero patterns, and therefore  matches  nothing.
    (-f is specified by POSIX.)

Suponiendo que su conjunto de palabras clave o cadenas está en un archivo llamadocadenas de búsqueda”, você pode usar o argumento na linha de comando como no exemplo a seguir. Uma vez que esta pesquisa irá gerar uma tonelada de dados, a parte "> output.txt ”do comando envia a saída do comando para um arquivo chamado output.txt que pode ser analisado separadamente.

grep -f searchstrings filetosearch > output.txt

O único problema em usar o argumento -féque o grep tentará interpretar as palavras-chave como se fossem padrões, o que pode atrasar você ao analisar um arquivo extremamente grande. Por isso, además puede especificar el parámetro -F, que le dice a grep que solo haga coincidencias exactas con las cadenas.

 -F, --fixed-strings
    Interpret PATTERN as a  list  of  fixed  strings,  separated  by
    newlines,  any  of  which is to be matched.  (-F is specified by
    POSIX.)

Então, o comando completo acabaria sendo mais assim:

grep -F -f searchstrings filetosearch > output.txt

Grep é uma forma ridiculamente poderosa de pesquisar arquivos de log, então pode valer a pena revisar o arquivo man.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.