Registros exclusivos via Shell Script [RESOLVIDO]

1. Registros exclusivos via Shell Script [RESOLVIDO]

renato bettini
renato_bettini

(usa Red Hat)

Enviado em 16/01/2017 - 10:24h

Olá. Preciso ler um arquivo de log (access_log) e obter todos os contextos de aplicação nele contido, porém, preciso que o script me traga apenas um registro de cada contexto.

Expl: Tenho 500 linhas com registros do contexto XPTO, porem, preciso que o script me retorne apenas 1 registro do XPTO, e assim para os demais contextos.

No meu script já consegui isolar o contexto usando o AWK e o SED. Falta apenas trazer o registro único.

Obrigado!







  


2. Re: Registros exclusivos via Shell Script [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 16/01/2017 - 13:13h

renato_bettini escreveu:

Olá. Preciso ler um arquivo de log (access_log) e obter todos os contextos de aplicação nele contido, porém, preciso que o script me traga apenas um registro de cada contexto.

Expl: Tenho 500 linhas com registros do contexto XPTO, porem, preciso que o script me retorne apenas 1 registro do XPTO, e assim para os demais contextos.

No meu script já consegui isolar o contexto usando o AWK e o SED. Falta apenas trazer o registro único.



velho, minha mente não está funcionando direito hoje então v se eu entendi direto ... vc quer buscar uma única ocorrencia da string XPTO ... é isso ???

Se não for isso poste um exemplo mais ou menos e diga o resultado desejado !!!
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


3. Re: Registros exclusivos via Shell Script [RESOLVIDO]

renato bettini
renato_bettini

(usa Red Hat)

Enviado em 16/01/2017 - 13:51h

É isso mesmo! Apenas uma string de cada registro.

Exemplo (conteúdo do arquivo):

::1 - - [30/Nov/2016:09:24:46 -0200] "GET /XPTO/access_unit HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XPTO/access_unit HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XPTO/access_unit HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XYZ/login HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XYZ/login HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XYZ/login HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:49 -0200] "GET /XYZ/login HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:49 -0200] "GET /ABCD/secure_auth HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:49 -0200] "GET /ABCD/secure_auth HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:27:02 -0200] "GET /ABCD/secure_auth HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:27:02 -0200] "GET /ABCD/secure_auth HTTP/1.1" 404 276

Tenho 3 contextos diferentes neste exemplo, XPTO, XYZ e ABCD

Quando rodo o script que criei, ele traz o seguinte resultado pra mim:

XPTO
XPTO
XPTO
XYZ
XYZ
XYZ
XYZ
ABCD
ABCD
ABCD
ABCD

Quero que ele traga apenas 1 de cada, ou seja:

XPTO
XYZ
ABCD


Valeu!




4. Re: Registros exclusivos via Shell Script [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 16/01/2017 - 15:52h

renato_bettini escreveu:

É isso mesmo! Apenas uma string de cada registro.

Exemplo (conteúdo do arquivo):

::1 - - [30/Nov/2016:09:24:46 -0200] "GET /XPTO/access_unit HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XPTO/access_unit HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XPTO/access_unit HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XYZ/login HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XYZ/login HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:48 -0200] "GET /XYZ/login HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:49 -0200] "GET /XYZ/login HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:49 -0200] "GET /ABCD/secure_auth HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:24:49 -0200] "GET /ABCD/secure_auth HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:27:02 -0200] "GET /ABCD/secure_auth HTTP/1.1" 404 276
::1 - - [30/Nov/2016:09:27:02 -0200] "GET /ABCD/secure_auth HTTP/1.1" 404 276

Tenho 3 contextos diferentes neste exemplo, XPTO, XYZ e ABCD

Quando rodo o script que criei, ele traz o seguinte resultado pra mim:

XPTO
XPTO
XPTO
XYZ
XYZ
XYZ
XYZ
ABCD
ABCD
ABCD
ABCD

Quero que ele traga apenas 1 de cada, ou seja:

XPTO
XYZ
ABCD


Valeu!



v se isso resolve pra vc

grep 'XPTO' access_log | head -1 

grep 'XYZ' access_log | head -1 

grep 'ABCD' access_log | head -1 

___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


5. Re: Registros exclusivos via Shell Script [RESOLVIDO]

renato bettini
renato_bettini

(usa Red Hat)

Enviado em 19/01/2017 - 09:43h

Como eu não sabia quais contextos eu teria no meu arquivo de log, consegui resolver meu problema usando as strings abaixo no final do meu comando:

sort | uniq

Entao ele trouxe apenas 1 registro de cada:

XPTO
XYZ
ABCD

etc..........






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts