Ola
preciso de uma ajuda para extrair dados de um log. a partir deste 
comando egrep -A1 'ACCEPT' /var/log/debug.log consigo o resultado abaixo:

Jun  3 15:27:17 ldap slapd[24695]: conn=194 fd=19 ACCEPT from 
IP=10.0.0.80:64514 (IP=0.0.0.0:389)
Jun  3 15:27:17 ldap slapd[24695]: conn=194 op=0 BIND dn="cn=148 - ANA 
PAULA GXXXX FXXXXX,ou=usuarios,dc=iqsc,dc=usp,dc=br" method=128
--
Jun  3 15:28:30 ldap slapd[24695]: conn=195 fd=19 ACCEPT from 
IP=10.0.0.10:49647 (IP=0.0.0.0:389)
Jun  3 15:28:30 ldap slapd[24695]: conn=195 op=0 BIND 
dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128
--
Jun  3 15:30:34 ldap slapd[24695]: conn=196 fd=19 ACCEPT from 
IP=10.0.0.10:50685 (IP=0.0.0.0:389)
Jun  3 15:30:34 ldap slapd[24695]: conn=196 op=0 BIND 
dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128
--
Jun  3 15:31:34 ldap slapd[24695]: conn=197 fd=19 ACCEPT from 
IP=10.0.0.10:51467 (IP=0.0.0.0:389)
Jun  3 15:31:34 ldap slapd[24695]: conn=197 op=0 BIND 
dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128
--
Jun  3 15:32:33 ldap slapd[24695]: conn=198 fd=19 ACCEPT from 
IP=10.0.0.80:59747 (IP=0.0.0.0:389)
Jun  3 15:32:33 ldap slapd[24695]: conn=198 op=0 BIND dn="cn=384 - 
HIDETAKE IMXXXO,ou=usuarios,dc=iqsc,dc=usp,dc=br" method=128
--
Jun  3 15:34:16 ldap slapd[24695]: conn=199 fd=19 ACCEPT from 
IP=10.0.0.10:53048 (IP=0.0.0.0:389)
Jun  3 15:34:16 ldap slapd[24695]: conn=199 op=0 BIND 
dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128

mas o que realmente quero é uma linha contendo a data, hora, IP e o nome 
do usuario. Notem que tem linhas sem o nome do usuario, essas linha 
deveriam ser eliminadas. quase consegui fazendo assim :  egrep -A1 
'ACCEPT' /var/log/debug.log | egrep -v '(dn=\"cn=root|ACCEPT)' | awk 
'{print $2" "$1"-"$3"-" $11}'
mas como o nome do usuario tem espaço em branco não estou conseguindo 
pegar o nome inteiro, mesmo com substr. sai assim
3 Jun-15:27:17-ANA
 ----
 ----
 ----
 ----
3 Jun-15:32:33-HIDETAKE

sou novato em shell script e estou apanhando muito

agradeço pela ajuda,

Carlos

Responder a