Come cercare con “grep” usando le stringhe in un file

0
158

Grep è uno strumento straordinario per cercare tra i file di registro ed estrarre informazioni utili , ma cosa succede se si desidera cercare un file di registro utilizzando un elenco gigante di parole chiave da un altro file? Fortunatamente ha anche quella funzione integrata.

Questo è successo a me quando volevo estrarre un elenco di tutti gli URL richiesti da un enorme blocco di IP che stava attaccando abusivamente il nostro server. Dopo aver identificato e creato l'elenco di un migliaio di IP, avevo bisogno di estrarre gli URL dal file di registro principale per identificare le risorse più richieste.

Per fare ciò ti consigliamo di utilizzare il -f argomento, che ti permette di specificare un file per l'elenco dei pattern da cercare.

-f FILE, –file=FILE Ottieni pattern da FILE, uno per riga. Il file vuoto contiene zero pattern e quindi non corrisponde a nulla. (-f è specificato da POSIX.)

Supponendo che il tuo set di parole chiave o stringhe si trovi in ​​un file denominato “stringhe di ricerca”, puoi utilizzare l'argomento sulla riga di comando come nell'esempio seguente. Poiché questa ricerca genererà una tonnellata di dati, il “> output.txt” parte del comando invia il risultato del comando in un file chiamato output.txt che può essere analizzato separatamente.

grep -f searchstrings filetosearch > output.txt

L'unico problema con l'utilizzo dell'argomento -f è che grep tenterà di interpretare le parole chiave come se fossero modelli, il che può rallentarlo durante l'analisi di un file estremamente grande. Quindi puoi anche specificare il parametro -F, che dice a grep di fare solo corrispondenze esatte con le stringhe.

-F, –fixed-strings Interpreta PATTERN come un elenco di stringhe fisse, separate da nuove righe, ognuna delle quali è da abbinare. (-F è specificato da POSIX.) Annuncio

Quindi il comando completo sarebbe più simile a questo:

grep -F -f searchstrings filetosearch > output.txt

Grep è un modo incredibilmente potente per cercare i file di registro, quindi varrebbe la pena dedicare del tempo a esaminare il file man.