Quindi ho un sacco di registri Apache con l'utilizzo del formato di registro standard. Voglio ottenere tutte le linee di registro che non provengono da un crawler web.
Quindi diciamo che ho un file robot_patterns con voci come
Googlebot
msnbot-media
YandexBot
bingbot
Se eseguo il comando grep -f robot_patterns *.log
otterrò tutte le voci dai robot che corrispondono ai modelli sopra. La mia lista attuale ha ~ 30 voci di robot e agenti che desidero ignorare.
Ma voglio trovare tutte le voci che NON provengono dai robot . Quindi provo grep -v -f robot_patterns *.log
e grep non restituisce risultati. Questo non è ciò che mi aspetto o desidero, e non trovo un modo ovvio per ottenere ciò che voglio. Quando si utilizza l' -v
opzione combinata con più pattern in un file, grep restituirà una riga corrispondente solo se corrisponde a OGNI pattern.
GNU grep 2.6.3
.