Usando o Perl, testado no v5.10.0 construído para o darwin-thread-multi-2level (OSX)
To print the UserAgent column:
perl -n -e '/^([^ ]+) ([^ ]+) ([^ ]+) (\[[^\]]+\]) "(.*) (.*) (.*)" ([0-9\-]+) ([0-9\-]+) "(.*)" "(.*)"/; print "$11\n"' -- test.log
- opção
-nenquanto cada linha emtest.log - opção
-eum programa de linha
Eu roubei e alterei o perlre que eu pesquisei no livro de receitas do PHP . Eu removi o $ do final do re para suportar formatos personalizados baseados no NCSA combinado. O padrão pode ser facilmente estendido para fornecer mais grupos.
Os grupos de expressões regulares () acabam como variáveis locais $1 to $n
Rápido, sujo e muito fácil de estender e criar scripts.
Alguns exemplos de canalização da saída:
-
| sort | uniqvalores de coluna exclusivos -
| sort | uniq | wc -lcontagem de colunas única
Crítica e melhorias bem-vindas