Grep
Jonas Abreu em 08/10/2013Comandos até o momento
$ curl http://www.vidageek.net/public/bash/games.log > games.log
$ cat games.log | cut -d " " -f 1
$ cat games.log | cut -d " " -f 1 | sort
$ cat games.log | cut -d " " -f 1 | sort | uniq -c | sort -r
$ cat games.log | cut -d " " -f 1 | sort | uniq -c | sort -r | head -n 20
Grep
Agora que já sabemos quais são os principais ips que acessam, vamos descobrir quais urls resultam em 404 e quantas vezes esse erro aconteceu.
Para isso vamos usar o grep, que é uma ferramenta fantástica cuja função principal é encontrar strings.
Por exemplo, se quisermos saber todas as urls que acessadas via POST:
$ cat games.log | grep POST
E se quisermos as requisições POST para /play/regex/task/14:
$ cat games.log | grep POST | grep "/play/regex/task/14"
E se quisermos as requisições que não foram feitas pelo ip 125.103.133.218? Basta passar a flag -v para o grep.
Ele só vai imprimir as não tiverem a string que você procura.
$ cat games.log | grep -v 125.103.133.218
O grep, assim como o uniq, sabe contar.
$ cat games.log | grep -c 125.103.133.218
Exercício
Encontre quais urls resultaram em 404 e quantas vezes isso aconteceu.