Tratar dados [RESOLVIDO]

13. Re: Tratar dados [RESOLVIDO]

Rogerio
RogerDez

(usa Outra)

Enviado em 21/03/2020 - 18:28h

OK, mas perceba que no exemplo que tu mandou, a primeira pessoa da lista não tem o campo NOME COMPLETO, e eu estou contando que pelo menos esse campo, todas as entradas deve ter...

#!/bin/bash

arq="$HOME/test"
out="$HOME/lista_acessocidadao.txt"
tmpdir="$(mktemp -d)"


#quebrar em arquivos menores
csplit --prefix="$tmpdir/xx" <(sed 's/^.*Nome/--\n&/' "$arq") '/^--/' '{*}' 1>/dev/null

printf '%s\n' "$tmpdir"/* |
while read file; do
Data="$(grep opt_field1 "$file" | awk '{print $1" "$2;}')"
Horario="$(grep opt_field1 "$file" | awk '{print $3;}')"
Celular="$(grep opt_field1 "$file" | awk '{print $8;}')"
CPF="$(grep opt_field2 "$file" | awk '{print $7;}' | cut -d '=' -f2)"
Email="$(grep opt_field3 "$file" | awk '{print $7;}' | cut -d '=' -f2)"
Nome="$(grep Completo "$file" | awk '{print $8" "$9" "$10;}' | cut -d '=' -f2)"

cat <<-! >> "$out"
=====================================================
Nome: $Nome
E-mail: $Email
CPF: $CPF
Celular: $Celular
Conectou em: $Data - $Horario
!

done

rm -r "$tmpdir"


=====================================================
Nome:
E-mail: fulano.1@dom.ma.in
CPF: 111.111.111-77
Celular: 99999-9999
Conectou em: Mar 19 - 17:00:12
=====================================================
Nome: Fulano 1
E-mail: teste@gmail.com
CPF: 888.888.888-71
Celular: 88888-9999
Conectou em: Mar 19 - 17:03:14
=====================================================
Nome: teste da silva
E-mail: fulano.2@gmail.com
CPF: 333.333.333-22
Celular: 99999-2222
Conectou em: Mar 19 - 17:03:20
=====================================================
Nome: Fulano C 2
E-mail: fulano.3@gmail.com
CPF: 444.444.444-44
Celular: 99929-2222
Conectou em: Mar 19 - 17:05:33
=====================================================
Nome: Fulano C 3
E-mail: fulano.4@terra.com.br
CPF: 444.444.444-42
Celular: 93333-3333
Conectou em: Mar 19 - 17:06:34
=====================================================
Nome: Fulano 4 Scriptero
E-mail:
CPF:
Celular:
Conectou em: -




  


14. Re: Tratar dados [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/03/2020 - 16:51h

premoli escreveu:

Segue um trecho do arquivo com os dados mascarados:

Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field1=(27) 99999-9999
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field2=111.111.111-77
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field3=fulano.1@dom.ma.in
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: Nome Completo=Fulano 1
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field1=(99) 88888-9999
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field2=888.888.888-71
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field3=teste@gmail.com
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: Nome Completo=teste da silva 35
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99999-2222
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field2=333.333.333-22
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field3=fulano.2@gmail.com
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 2
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99929-2222
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-44
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field3=fulano.3@gmail.com
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 3
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field1=(27) 93333-3333
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-42
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field3=fulano.4@terra.com.br
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano 4 Scriptero

Boa tarde Premoli, no fim de semana não entrei no fórum....
Segue uma dica:
Com o sed, monte um padrão para o arquivo.
Exemplo:
sed -r 's/Nome Completo=.*$/&\n/' dados.txt
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field1=(27) 99999-9999
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field2=111.111.111-77
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field3=fulano.1@dom.ma.in
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: Nome Completo=Fulano 1

Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field1=(99) 88888-9999
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field2=888.888.888-71
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field3=teste@gmail.com
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: Nome Completo=teste da silva 35

Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99999-2222
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field2=333.333.333-22
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field3=fulano.2@gmail.com
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 2

Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99929-2222
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-44
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field3=fulano.3@gmail.com
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 3

Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field1=(27) 93333-3333
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-42
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field3=fulano.4@terra.com.br
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano 4 Scriptero


Desta Forma temos os registros separado por uma linha vazia.
Usando o awk, temos os dados, exceto a data....
sed 's/^.*Nome Completo.*$/&\n/' dados.txt |awk -F"=" '{print $2}'
(27) 99999-9999
111.111.111-77
fulano.1@dom.ma.in
Fulano 1
...
Outra opção, somente com o sed, é longo, mas é simples.....
sed -r 's/Nome Completo=.*$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data=/;s/opt_field1.*$/\n&/;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2} //;s/opt_field1/Tel/;s/opt_field2/CPF/;s/opt_field3/E-Mail/;s/ Completo//' dados.txt
Data=Mar 19 17:00:12
Tel=(27) 99999-9999
CPF=111.111.111-77
E-Mail=fulano.1@dom.ma.in
Nome=Fulano 1

Data=Mar 19 17:03:14
Tel=(99) 88888-9999
CPF=888.888.888-71
E-Mail=teste@gmail.com
Nome=teste da silva 35

Data=Mar 19 17:03:20
Tel=(27) 99999-2222
CPF=333.333.333-22
E-Mail=fulano.2@gmail.com
Nome=Fulano C 2

Data=Mar 19 17:05:33
Tel=(27) 99929-2222
CPF=444.444.444-44
E-Mail=fulano.3@gmail.com
Nome=Fulano C 3

Data=Mar 19 17:06:34
Tel=(27) 93333-3333
CPF=444.444.444-42
E-Mail=fulano.4@terra.com.br
Nome=Fulano 4 Scriptero

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


15. Re: Tratar dados [RESOLVIDO]

Fábio C Premoli
premoli

(usa Fedora)

Enviado em 23/03/2020 - 17:51h

msoliver escreveu:

premoli escreveu:

Segue um trecho do arquivo com os dados mascarados:

Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field1=(27) 99999-9999
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field2=111.111.111-77
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field3=fulano.1@dom.ma.in
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: Nome Completo=Fulano 1
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field1=(99) 88888-9999
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field2=888.888.888-71
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field3=teste@gmail.com
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: Nome Completo=teste da silva 35
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99999-2222
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field2=333.333.333-22
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field3=fulano.2@gmail.com
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 2
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99929-2222
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-44
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field3=fulano.3@gmail.com
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 3
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field1=(27) 93333-3333
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-42
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field3=fulano.4@terra.com.br
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano 4 Scriptero

Boa tarde Premoli, no fim de semana não entrei no fórum....
Segue uma dica:
Com o sed, monte um padrão para o arquivo.
Exemplo:
sed -r 's/Nome Completo=.*$/&\n/' dados.txt
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field1=(27) 99999-9999
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field2=111.111.111-77
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field3=fulano.1@dom.ma.in
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: Nome Completo=Fulano 1

Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field1=(99) 88888-9999
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field2=888.888.888-71
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field3=teste@gmail.com
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: Nome Completo=teste da silva 35

Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99999-2222
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field2=333.333.333-22
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field3=fulano.2@gmail.com
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 2

Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99929-2222
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-44
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field3=fulano.3@gmail.com
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 3

Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field1=(27) 93333-3333
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-42
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field3=fulano.4@terra.com.br
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano 4 Scriptero


Desta Forma temos os registros separado por uma linha vazia.
Usando o awk, temos os dados, exceto a data....
sed 's/^.*Nome Completo.*$/&\n/' dados.txt |awk -F"=" '{print $2}'
(27) 99999-9999
111.111.111-77
fulano.1@dom.ma.in
Fulano 1
...
Outra opção, somente com o sed, é longo, mas é simples.....
sed -r 's/Nome Completo=.*$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data=/;s/opt_field1.*$/\n&/;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2} //;s/opt_field1/Tel/;s/opt_field2/CPF/;s/opt_field3/E-Mail/;s/ Completo//' dados.txt
Data=Mar 19 17:00:12
Tel=(27) 99999-9999
CPF=111.111.111-77
E-Mail=fulano.1@dom.ma.in
Nome=Fulano 1

Data=Mar 19 17:03:14
Tel=(99) 88888-9999
CPF=888.888.888-71
E-Mail=teste@gmail.com
Nome=teste da silva 35

Data=Mar 19 17:03:20
Tel=(27) 99999-2222
CPF=333.333.333-22
E-Mail=fulano.2@gmail.com
Nome=Fulano C 2

Data=Mar 19 17:05:33
Tel=(27) 99929-2222
CPF=444.444.444-44
E-Mail=fulano.3@gmail.com
Nome=Fulano C 3

Data=Mar 19 17:06:34
Tel=(27) 93333-3333
CPF=444.444.444-42
E-Mail=fulano.4@terra.com.br
Nome=Fulano 4 Scriptero

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________




Top demais, com esse sed resolve tudo. Valeu e Viva o Linux!!


16. Re: Tratar dados [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/03/2020 - 19:12h


premoli escreveu:

msoliver escreveu:

premoli escreveu:

Segue um trecho do arquivo com os dados mascarados:

Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field1=(27) 99999-9999
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field2=111.111.111-77
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field3=fulano.1@dom.ma.in
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: Nome Completo=Fulano 1
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field1=(99) 88888-9999
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field2=888.888.888-71
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field3=teste@gmail.com
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: Nome Completo=teste da silva 35
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99999-2222
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field2=333.333.333-22
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field3=fulano.2@gmail.com
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 2
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99929-2222
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-44
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field3=fulano.3@gmail.com
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 3
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field1=(27) 93333-3333
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-42
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field3=fulano.4@terra.com.br
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano 4 Scriptero

Boa tarde Premoli, no fim de semana não entrei no fórum....
Segue uma dica:
Com o sed, monte um padrão para o arquivo.
Exemplo:
sed -r 's/Nome Completo=.*$/&\n/' dados.txt
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field1=(27) 99999-9999
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field2=111.111.111-77
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field3=fulano.1@dom.ma.in
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: Nome Completo=Fulano 1

Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field1=(99) 88888-9999
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field2=888.888.888-71
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field3=teste@gmail.com
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: Nome Completo=teste da silva 35

Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99999-2222
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field2=333.333.333-22
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field3=fulano.2@gmail.com
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 2

Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99929-2222
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-44
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field3=fulano.3@gmail.com
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 3

Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field1=(27) 93333-3333
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-42
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field3=fulano.4@terra.com.br
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano 4 Scriptero


Desta Forma temos os registros separado por uma linha vazia.
Usando o awk, temos os dados, exceto a data....
sed 's/^.*Nome Completo.*$/&\n/' dados.txt |awk -F"=" '{print $2}'
(27) 99999-9999
111.111.111-77
fulano.1@dom.ma.in
Fulano 1
...
Outra opção, somente com o sed, é longo, mas é simples.....
sed -r 's/Nome Completo=.*$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data=/;s/opt_field1.*$/\n&/;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2} //;s/opt_field1/Tel/;s/opt_field2/CPF/;s/opt_field3/E-Mail/;s/ Completo//' dados.txt
Data=Mar 19 17:00:12
Tel=(27) 99999-9999
CPF=111.111.111-77
E-Mail=fulano.1@dom.ma.in
Nome=Fulano 1

Data=Mar 19 17:03:14
Tel=(99) 88888-9999
CPF=888.888.888-71
E-Mail=teste@gmail.com
Nome=teste da silva 35

Data=Mar 19 17:03:20
Tel=(27) 99999-2222
CPF=333.333.333-22
E-Mail=fulano.2@gmail.com
Nome=Fulano C 2

Data=Mar 19 17:05:33
Tel=(27) 99929-2222
CPF=444.444.444-44
E-Mail=fulano.3@gmail.com
Nome=Fulano C 3

Data=Mar 19 17:06:34
Tel=(27) 93333-3333
CPF=444.444.444-42
E-Mail=fulano.4@terra.com.br
Nome=Fulano 4 Scriptero

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________




Top demais, com esse sed resolve tudo. Valeu e Viva o Linux!!

Complementando:
Para buscar por um registro especifico, faça:
sed -r 's/Nome Completo=.*$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data=/;s/opt_field1.*$/\n&/;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2} //;s/opt_field1/Tel/;s/opt_field2/CPF/;s/opt_field3/E-Mail/;s/ Completo//' dados.txt|awk 'BEGIN{RS="\n\n";FS="\n";ORS="\n\n"} /Fulano/ {print $0}'



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


17. Re: Tratar dados [RESOLVIDO]

Fábio C Premoli
premoli

(usa Fedora)

Enviado em 24/03/2020 - 18:11h

msoliver escreveu:


premoli escreveu:

msoliver escreveu:

premoli escreveu:

Segue um trecho do arquivo com os dados mascarados:

Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field1=(27) 99999-9999
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field2=111.111.111-77
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field3=fulano.1@dom.ma.in
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: Nome Completo=Fulano 1
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field1=(99) 88888-9999
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field2=888.888.888-71
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field3=teste@gmail.com
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: Nome Completo=teste da silva 35
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99999-2222
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field2=333.333.333-22
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field3=fulano.2@gmail.com
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 2
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99929-2222
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-44
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field3=fulano.3@gmail.com
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 3
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field1=(27) 93333-3333
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-42
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field3=fulano.4@terra.com.br
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano 4 Scriptero

Boa tarde Premoli, no fim de semana não entrei no fórum....
Segue uma dica:
Com o sed, monte um padrão para o arquivo.
Exemplo:
sed -r 's/Nome Completo=.*$/&\n/' dados.txt
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field1=(27) 99999-9999
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field2=111.111.111-77
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: opt_field3=fulano.1@dom.ma.in
Mar 19 17:00:12 10.160.96.2 ah_auth: aaa: Nome Completo=Fulano 1

Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field1=(99) 88888-9999
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field2=888.888.888-71
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: opt_field3=teste@gmail.com
Mar 19 17:03:14 10.160.96.2 ah_auth: aaa: Nome Completo=teste da silva 35

Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99999-2222
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field2=333.333.333-22
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: opt_field3=fulano.2@gmail.com
Mar 19 17:03:20 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 2

Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field1=(27) 99929-2222
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-44
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: opt_field3=fulano.3@gmail.com
Mar 19 17:05:33 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano C 3

Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field1=(27) 93333-3333
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field2=444.444.444-42
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: opt_field3=fulano.4@terra.com.br
Mar 19 17:06:34 10.160.96.136 ah_auth: aaa: Nome Completo=Fulano 4 Scriptero


Desta Forma temos os registros separado por uma linha vazia.
Usando o awk, temos os dados, exceto a data....
sed 's/^.*Nome Completo.*$/&\n/' dados.txt |awk -F"=" '{print $2}'
(27) 99999-9999
111.111.111-77
fulano.1@dom.ma.in
Fulano 1
...
Outra opção, somente com o sed, é longo, mas é simples.....
sed -r 's/Nome Completo=.*$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data=/;s/opt_field1.*$/\n&/;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2} //;s/opt_field1/Tel/;s/opt_field2/CPF/;s/opt_field3/E-Mail/;s/ Completo//' dados.txt
Data=Mar 19 17:00:12
Tel=(27) 99999-9999
CPF=111.111.111-77
E-Mail=fulano.1@dom.ma.in
Nome=Fulano 1

Data=Mar 19 17:03:14
Tel=(99) 88888-9999
CPF=888.888.888-71
E-Mail=teste@gmail.com
Nome=teste da silva 35

Data=Mar 19 17:03:20
Tel=(27) 99999-2222
CPF=333.333.333-22
E-Mail=fulano.2@gmail.com
Nome=Fulano C 2

Data=Mar 19 17:05:33
Tel=(27) 99929-2222
CPF=444.444.444-44
E-Mail=fulano.3@gmail.com
Nome=Fulano C 3

Data=Mar 19 17:06:34
Tel=(27) 93333-3333
CPF=444.444.444-42
E-Mail=fulano.4@terra.com.br
Nome=Fulano 4 Scriptero

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________




Top demais, com esse sed resolve tudo. Valeu e Viva o Linux!!

Complementando:
Para buscar por um registro especifico, faça:
sed -r 's/Nome Completo=.*$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data=/;s/opt_field1.*$/\n&/;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2} //;s/opt_field1/Tel/;s/opt_field2/CPF/;s/opt_field3/E-Mail/;s/ Completo//' dados.txt|awk 'BEGIN{RS="\n\n";FS="\n";ORS="\n\n"} /Fulano/ {print $0}'



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________



Como faço o sed abaixo escrever os dados abaixo unindo as vírgulas para exportar um arquivo csv?

sed -r 's/Nome Completo=.*$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data,Tel,CPF,E-Mail,Nome,/;s/opt_field1.*$/\n&/;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2} //;s/opt_field1=/,/;s/opt_field2=/,/;s/opt_field3=/,/;s/Nome Completo=/,/' dados.txt

Data,Tel,CPF,E-Mail,Nome,Mar 19 17:00:12
,(27) 99999-9999
,111.111.111-77
,fulano.1@dom.ma.in
,Fulano 1

Data,Tel,CPF,E-Mail,Nome,Mar 19 17:03:14
,(99) 88888-9999
,888.888.888-71
,teste@gmail.com
,teste da silva 35

Data,Tel,CPF,E-Mail,Nome,Mar 19 17:03:20
,(27) 99999-2222
,333.333.333-22
,fulano.2@gmail.com
,Fulano C 2

Data,Tel,CPF,E-Mail,Nome,Mar 19 17:05:33
,(27) 99929-2222
,444.444.444-44
,fulano.3@gmail.com
,Fulano C 3

Data,Tel,CPF,E-Mail,Nome,Mar 19 17:06:34
,(27) 93333-3333
,444.444.444-42
,fulano.4@terra.com.br
,Fulano 4 Scriptero

Grato desde já!!



18. Re: Tratar dados [RESOLVIDO]

Fábio C Premoli
premoli

(usa Fedora)

Enviado em 25/03/2020 - 14:55h

# sed -r 's/Nome Completo=.$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data,Tel,CPF,E-Mail,Nome,/;s/opt_field1.$/\n&/;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2} //;s/opt_field1=/,/;s/opt_field2=/,/;s/opt_field3=/,/;s/Nome Completo=/,/' dados.txt
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:00:12 ,(27) 99999-9999
,111.111.111-77
,fulano.1@dom.ma.in
,Fulano 1
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:03:14 ,(99) 88888-9999
,888.888.888-71
,teste@gmail.com
,teste da silva 35
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:03:20 ,(27) 99999-2222
,333.333.333-22
,fulano.2@gmail.com
,Fulano C 2
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:05:33 ,(27) 99929-2222
,444.444.444-44
,fulano.3@gmail.com
,Fulano C 3
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:06:34 ,(27) 93333-3333
,444.444.444-42
,fulano.4@terra.com.br
,Fulano 4 Scriptero

Evoluindo porém apanhando ainda...


19. Re: Tratar dados [RESOLVIDO]

Fábio C Premoli
premoli

(usa Fedora)

Enviado em 25/03/2020 - 15:12h

Consegui senhores, valeu pelas dicas, ficou meio gambi mas funcional:

# sed -r 's/Nome Completo=.$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data,Tel,CPF,E-Mail,Nome,/;s/opt_field1.$//;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2}//;s/opt_field1=/,/;s/opt_field2=/,/;s/opt_field3=/,/;s/Nome Completo=/,/' dados.txt | sed -e 'N;s/\n/ /g' | sed -e 'N;s/\n/ /g'
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:00:12 ,(27) 99999-9999 ,111.111.111-77 ,fulano.1@dom.ma.in ,Fulano 1
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:03:14 ,(99) 88888-9999 ,888.888.888-71 ,teste@gmail.com ,teste da silva 35
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:03:20 ,(27) 99999-2222 ,333.333.333-22 ,fulano.2@gmail.com ,Fulano C 2
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:05:33 ,(27) 99929-2222 ,444.444.444-44 ,fulano.3@gmail.com ,Fulano C 3
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:06:34 ,(27) 93333-3333 ,444.444.444-42 ,fulano.4@terra.com.br ,Fulano 4 Scriptero


20. Re: Tratar dados [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 25/03/2020 - 17:45h


premoli escreveu:

Consegui senhores, valeu pelas dicas, ficou meio gambi mas funcional:

# sed -r 's/Nome Completo=.$/&\n/;s/([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: //;/opt_field1/s/^/Data,Tel,CPF,E-Mail,Nome,/;s/opt_field1.$//;s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2}//;s/opt_field1=/,/;s/opt_field2=/,/;s/opt_field3=/,/;s/Nome Completo=/,/' dados.txt | sed -e 'N;s/\n/ /g' | sed -e 'N;s/\n/ /g'
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:00:12 ,(27) 99999-9999 ,111.111.111-77 ,fulano.1@dom.ma.in ,Fulano 1
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:03:14 ,(99) 88888-9999 ,888.888.888-71 ,teste@gmail.com ,teste da silva 35
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:03:20 ,(27) 99999-2222 ,333.333.333-22 ,fulano.2@gmail.com ,Fulano C 2
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:05:33 ,(27) 99929-2222 ,444.444.444-44 ,fulano.3@gmail.com ,Fulano C 3
Data,Tel,CPF,E-Mail,Nome,Mar 19 17:06:34 ,(27) 93333-3333 ,444.444.444-42 ,fulano.4@terra.com.br ,Fulano 4 Scriptero

Segue:
sed -r 's/Nome Completo=.*$/&\n/;
/field1/s/^/Data\;Tel\;CPF\;E\-Mail\;Nome\;/;
s/ ([0-9]{1,3}\.){3}[0-9]{1,3} ah_auth: aaa: (opt_field[0-9]=|Nome Completo=)/;/;
s/^[A-Z][a-z]{2} [0-9]{2} ([0-9]{2}:){2}[0-9]{2}//' dados.txt|awk 'BEGIN{RS="\n\n";FS="\n";ORS="\n";OFS="";} {print $1,$2,$3,$4}'



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts