Discussion:
[shell-script] Substituíção de cadeias com sed
Cesar Rodrigues bambamcbreal@gmail.com [shell-script]
2018-08-23 04:06:05 UTC
Permalink
Fala, pessoal.
TÎ precisando de uma ajudinha de vocês pra formatar o texto em vários
arquivos.

Eu tÃŽ usando o sed pra tentar trocar isso aqui: *2018-06-05T10: 23:
55390-03: 00*
por isso aqui: *2018-06-05 10:23:55*

É um json e está exatamente neste formato.
Será que é possível fazer isso com sed? TÎ tomando uma coça pra fazer isso
dar certo. São milhares de linhas, rs.

OBS: Lembrando que o horário sempre muda.

Obrigado!!
Tiago Peczenyj tiago.peczenyj@gmail.com [shell-script]
2018-08-23 04:56:59 UTC
Permalink
Não entendi a substituição

*2018-06-05T10: 23: 55390-03: 00*
*2018-06-05 10:23:55*

O problema é esse T e os números 390-03:00 no final ?
Post by Cesar Rodrigues ***@gmail.com [shell-script]
Fala, pessoal.
TÎ precisando de uma ajudinha de vocês pra formatar o texto em vários
arquivos.
55390-03: 00*
por isso aqui: *2018-06-05 10:23:55*
É um json e está exatamente neste formato.
Será que é possível fazer isso com sed? TÎ tomando uma coça pra fazer isso
dar certo. São milhares de linhas, rs.
OBS: Lembrando que o horário sempre muda.
Obrigado!!
--
Tiago B. Peczenyj

http://about.me/peczenyj
Jonathan Lessa jonathanlessa@gmail.com [shell-script]
2018-08-23 11:40:00 UTC
Permalink
vTemp='2018-06-05T10: 23: 55390-03: 00'

echo $vTemp | sed -r "s/(.{10}).(.{2}:) (.{2}:) (.{2}).*$/\1 \2\3\4/g"
2018-06-05 10:23:55

echo "${vTemp:0:10} ${vTemp:11:10}"
2018-06-05 10: 23: 55
Post by Cesar Rodrigues ***@gmail.com [shell-script]
Fala, pessoal.
TÎ precisando de uma ajudinha de vocês pra formatar o texto em vários
arquivos.
55390-03: 00*
por isso aqui: *2018-06-05 10:23:55*
É um json e está exatamente neste formato.
Será que é possível fazer isso com sed? TÎ tomando uma coça pra fazer isso
dar certo. São milhares de linhas, rs.
OBS: Lembrando que o horário sempre muda.
Obrigado!!
--
Att.:
Jonathan Lessa
Licenciado em Informática
Jonathan Lessa jonathanlessa@gmail.com [shell-script]
2018-08-23 11:44:11 UTC
Permalink
vTemp='2018-06-05T10: 23: 55390-03: 00'

echo "${vTemp:0:21}" | sed -r "s/ //g;s/[T]/ /g"
2018-06-05 10:23:55
Post by Jonathan Lessa ***@gmail.com [shell-script]
vTemp='2018-06-05T10: 23: 55390-03: 00'
echo $vTemp | sed -r "s/(.{10}).(.{2}:) (.{2}:) (.{2}).*$/\1 \2\3\4/g"
2018-06-05 10:23:55
echo "${vTemp:0:10} ${vTemp:11:10}"
2018-06-05 10: 23: 55
Post by Cesar Rodrigues ***@gmail.com [shell-script]
Fala, pessoal.
TÎ precisando de uma ajudinha de vocês pra formatar o texto em vários
arquivos.
55390-03: 00*
por isso aqui: *2018-06-05 10:23:55*
É um json e está exatamente neste formato.
Será que é possível fazer isso com sed? TÎ tomando uma coça pra fazer
isso dar certo. São milhares de linhas, rs.
OBS: Lembrando que o horário sempre muda.
Obrigado!!
--
Jonathan Lessa
Licenciado em Informática
--
Att.:
Jonathan Lessa
Licenciado em Informática
Dito Ramos diramos@uol.com.br [shell-script]
2018-08-23 13:37:20 UTC
Permalink
Cesar Rodrigues bambamcbreal@gmail.com [shell-script]
2018-08-23 17:01:17 UTC
Permalink
Infelizmente não funcionou, pessoal :/

Segue um pedaço do log json:

{"timestamp":"2018-08-22T22:55:16.599-03:00",

Eu já apaguei o {"timestamp":, mas não consigo transformar essas
datas/horarios: 2018-08-22T22:55:16.599-03:00 nisso aqui 2018-08-22
22:55:16.
Quero transformar apenas na data e horario com segundos.

Tá brabo!!!!
echo 2018-06-05T10: 23: 55390-03: 00 | sed 's/T/ /g' | sed 's/: /:/g' |
cut -c 1-19
──────────────────────────────────────────────────────────────────
Enviada: 2018/08/23 01:06:25
Assunto: [shell-script] Substituíção de cadeias com sed
Jonathan Lessa jonathanlessa@gmail.com [shell-script]
2018-08-23 17:08:22 UTC
Permalink
Esse é o exemplo de uma linha inteira?
O primeiro exemplo que vc passou tinham espaços no horário e nesse agora
não, tenta passar pelo menos exemplos com linha inteira para ajudarmos
melhor.
Post by Cesar Rodrigues ***@gmail.com [shell-script]
Infelizmente não funcionou, pessoal :/
{"timestamp":"2018-08-22T22:55:16.599-03:00",
Eu já apaguei o {"timestamp":, mas não consigo transformar essas
datas/horarios: 2018-08-22T22:55:16.599-03:00 nisso aqui 2018-08-22
22:55:16.
Quero transformar apenas na data e horario com segundos.
Tá brabo!!!!
echo 2018-06-05T10: 23: 55390-03: 00 | sed 's/T/ /g' | sed 's/: /:/g' |
cut -c 1-19
──────────────────────────────────────────────────────────────────
Enviada: 2018/08/23 01:06:25
Assunto: [shell-script] Substituíção de cadeias com sed
Dito Ramos diramos@uol.com.br [shell-script]
2018-08-23 17:42:12 UTC
Permalink
Cesar Rodrigues bambamcbreal@gmail.com [shell-script]
2018-08-24 00:34:41 UTC
Permalink
Desculpe meus caros.

Segue duas linhas do arquivo json:

{"*timestamp":"2018-08-22T00:00:31.076-03:00*","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512999999999","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12999999999"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}



{"*timestamp":"2018-08-22T00:00:31.076-03:00*","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512994449598","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12994449598"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
Idem, ibidem
Diramos
──────────────────────────────────────────────────────────────────
Enviada: 2018/08/23 14:08:43
Assunto: Re: [shell-script] Substituíção de cadeias com sed
Fredi Rolf Bieging fredi.bieging@gmail.com [shell-script]
2018-08-24 02:07:25 UTC
Permalink
Como é sempre a primeira ocorrência de 'T' e a primeira de '.', acho que dá
pra fazer assim:

sed '/^{"timestamp"/s/T/ /; s/\.[^"]*//' arquivo.json
Post by Cesar Rodrigues ***@gmail.com [shell-script]
Desculpe meus caros.
{"*timestamp":"2018-08-22T00:00:31.076-03:00*","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512999999999","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12999999999"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
{"*timestamp":"2018-08-22T00:00:31.076-03:00*","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512994449598","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12994449598"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
Idem, ibidem
Diramos
──────────────────────────────────────────────────────────────────
Enviada: 2018/08/23 14:08:43
Assunto: Re: [shell-script] Substituíção de cadeias com sed
Dito Ramos diramos@uol.com.br [shell-script]
2018-08-24 15:38:36 UTC
Permalink
Jonathan Lessa jonathanlessa@gmail.com [shell-script]
2018-08-24 15:51:17 UTC
Permalink
[***@monitor ~]$ cat arq
{"timestamp":"2018-08-22T00:00:31.076-03:00","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512999999999","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12999999999"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
{"timestamp":"2018-08-22T00:00:31.076-03:00","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512994449598","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12994449598"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}


[***@monitor ~]$ awk -F '[T."]' '{print $4" "$5}' arq
2018-08-22 00:00:31
2018-08-22 00:00:31
Post by Cesar Rodrigues ***@gmail.com [shell-script]
Desculpe meus caros.
{"*timestamp":"2018-08-22T00:00:31.076-03:00*","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512999999999","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12999999999"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
{"*timestamp":"2018-08-22T00:00:31.076-03:00*","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512994449598","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12994449598"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
Idem, ibidem
Diramos
──────────────────────────────────────────────────────────────────
Enviada: 2018/08/23 14:08:43
Assunto: Re: [shell-script] Substituíção de cadeias com sed
--
Att.:
Jonathan Lessa
Licenciado em Informática
Cesar Rodrigues bambamcbreal@gmail.com [shell-script]
2018-08-24 21:46:02 UTC
Permalink
Funcionou perfeitamente, pessoal.
Testei todas as opções que vocês deram e tive sucesso em todas. :D

Fiquei quase uma semana pra conseguir isso kkkkkkkkkkkkkkkkk

Valeu mesmo, pessoal. Ajudaram bastante!!!
Post by Jonathan Lessa ***@gmail.com [shell-script]
{"timestamp":"2018-08-22T00:00:31.076-03:00","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512999999999","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12999999999"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
{"timestamp":"2018-08-22T00:00:31.076-03:00","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512994449598","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12994449598"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
2018-08-22 00:00:31
2018-08-22 00:00:31
Post by Cesar Rodrigues ***@gmail.com [shell-script]
Desculpe meus caros.
{"*timestamp":"2018-08-22T00:00:31.076-03:00*","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512999999999","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12999999999"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
{"*timestamp":"2018-08-22T00:00:31.076-03:00*","version":1,"message":"Ativacao
finalizada.","logger_name":"com.teste.domain.service.impl.ActivateServiceImpl","level":"INFO","HOSTNAME":"venom-score-offers1","X-B3-TraceId":"92wsda0sdgfhc9238","X-Span-Export":"true","X-B3-SpanId":"92wsda0sdgfhc9238","msisdn":"5512994449598","request":{"linha":{"numeroLinha":"12999999999"},"oferta":{"token":"TW180822000019877ebe","canalAtendimento":"NDescont"},"numeroLinha":"12994449598"},"response":{"codigo":"M0"},"integrationResponseTime":2439,"application":"project.artifactId_IS_UNDEFINED","hostname":"vemvem-teste-Ssfers1"}
Idem, ibidem
Diramos
──────────────────────────────────────────────────────────────────
Enviada: 2018/08/23 14:08:43
Assunto: Re: [shell-script] Substituíção de cadeias com sed
--
Jonathan Lessa
Licenciado em Informática
itamarnet@yahoo.com.br [shell-script]
2018-08-23 17:35:43 UTC
Permalink
Caro César

Realmente vc mostrou 2 exemplos diferentes, e pelo que vi o primeiro estava incompleto.
Com esse novo exemplo as sugestões devem ser diferentes então se for possível mostrar um pouco mais do arquivo, com as linhas que não precisam ser alteradas e supondo que essa que vc mandou seja a linha completa que precisa de tratamento.
Há a possibilidade da solução impactar em linhas indesejadas.
Mas baseada nessa última que tal:


sed -r '/"timestamp"/{s/.*([0-9-]{10})T([0-9:]{8}).*/\1 \2/}'





[]'s
Itamar
'T.Collons' t.collons@gmail.com [shell-script]
2018-08-25 17:24:05 UTC
Permalink
Grande Itamarnet
Post by ***@yahoo.com.br [shell-script]
sed -r '/"timestamp"/{s/.*([0-9-]{10})T([0-9:]{8}).*/\1 \2/}'
--
Pere

***@gmail.com <mailto:***@gmail.com>



<https://www.google.com/>

------------------------------------

AVIS LEGAL

Nota de confidencialitat: Aquest missatge podria contenir missatges
d'empresa i altre informació confidencial tutelada per les lleis de
Europea i altres estats, Si VostÚ el rep per error o sense ser una de
les persones esmenades a la capçalera, haurà de destruir-lo sense
copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el
contingut del missatge i notificar-ho per correu electrònic a l'emissor
del missatge.

Les persones o entitats que incompleixin els deures de confidencialitat
podran ésser perseguides davant dels Tribunals de Justícia sota l'empar
de la legislació civil, penal i administrativa nacional i internacional.

Gracies per la seva cooperació.

------------------------------------

LEGAL NOTICE

Confidentiality notice: This mail may include business and other
confidential information protected under the laws of and other
territories. if you are not one of the intended recipients of the
message, you are legally obliged to delete the message content.
Furthermore, you are kindly requested to report immediately the incident
to the sender.

Breach of confidentiality duties is a serious criminal offence in and
other territories. Offenders shall be legally prosecuted worldwide.

Thank you for your cooperation.
brunodiasinfo@yahoo.com [shell-script]
2018-09-02 21:09:15 UTC
Permalink
Amigos, se me permitem, segue uma dica que mestre Julio me deu:

sed 's/T/ /g; s/: /:/g' <<< $(echo 2018-06-05T10: 23: 55390-03: 00) | cut -c 1-19



Reduzi a quantidade de pipes, fazendo assim, ter menos sub-shells rodando.
Loading...