J'ai donc un tas de journaux Apache en utilisant le format de journal standard. Je veux obtenir toutes les lignes de journal qui ne proviennent pas d'un robot d'exploration Web.
Disons donc que j'ai un fichier robot_patterns avec des entrées comme
Googlebot
msnbot-media
YandexBot
bingbot
Si j'exécute la commande grep -f robot_patterns *.log
, j'obtiendrai toutes les entrées par des bots correspondant aux modèles ci-dessus. Ma liste actuelle contient environ 30 entrées de robots et d'agents que je souhaite ignorer.
Mais je veux trouver toutes les entrées qui ne proviennent PAS de bots . Donc j'essaye grep -v -f robot_patterns *.log
et aucun résultat n'est retourné par grep. Ce n'est pas ce que j'attends ou ce que je désire, et je ne trouve pas un moyen évident d'obtenir ce que je veux. Lorsque vous utilisez l' -v
option combinée avec plusieurs modèles dans un fichier, grep ne retournera une ligne correspondante que si elle correspond à CHAQUE modèle.
GNU grep 2.6.3
.