script para gerar tabelas dos logs???
Olá pessoal,
Criei um arquivo de log no /var/log/arquivo.log e quero mandar para uma tabela estilo excel o seguinte:
Mes, data, horario, entre outros. Sendo os dados em suas respectivas linhas e colunas.
ex.:
Jun 20 11:40:02 bd sshd[2014]
Jun 20 11:40:07 bd sshd[2017]:
Jun 20 11:40:13 bd sshd[2020]:
Jun 20 11:40:13 bd sshd[2020]:
Jun 20 11:52:50 bd -- MARK --
Jun 20 12:12:50 bd -- MARK --
Jun 20 12:32:50 bd -- MARK --
como que posso fazer esse script?
Re: script para gerar tabelas dos logs???
De maneira bem simples, sem a utilização de expressões regulares você pode resolver da seguinte forma.
cat <nome do arquivo> | awk {'print $<numero>'}
Explicando o comando:
* cat <nome do arquivo> = le o arquivo inteiro e joga na tela
* | = direciona a saída para o próximo comando
* awk {'print $<numero>'} = imprime apenas a palavra selecionada
No caso do seu arquivo de log temos:
(1) (2) (3) (4) (5)
Jun 20 11:40:02 bd sshd[2014]
Jun 20 11:40:07 bd sshd[2017]:
Jun 20 11:40:13 bd sshd[2020]:
Jun 20 11:40:13 bd sshd[2020]:
Jun 20 11:52:50 bd -- MARK --
Jun 20 12:12:50 bd -- MARK --
Jun 20 12:32:50 bd -- MARK --
Note que eu enumerei cada coluna com (<numero>)
Sendo assim, digamos que você queira um novo arquivo formatado com "<dia>/<mes>-<hora>"
O comando ficaria da seguinte forma
cat <nome do arquivo> | awk {'print $2"/"$1"-"$3'}
Mas como você quer trabalhar com este log, e jogar no excell, se não me engano os campos precisam ser
separados por ";"
Basta tu inserir ";" entre as variáveis de impressão e mandar bala
Essa é a maneira mais fácil de se aprender a trabalhar com shell.
Uma dica para tu enriquecer seus conhecimentos, de uma olhada em expressões regulares neste link:
http://guia-er.sourceforge.net/
[]'s