Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas [RESOLVIDO]

1. Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas [RESOLVIDO]

Rômulo Peixoto Remédios
rommulo9

(usa Linux Mint)

Enviado em 12/04/2021 - 14:53h

Olá pessoal.

Pouco tempo atrás postei aqui uma pergunta semelhante, e por falta de internet (área rural) não finalizei o tópico a tempo.
Desta vez estou refazendo a pergunta, porém de forma mais abrangente.

Eu tenho uma lista em texto simples (txt), listando diversos vídeos de meu interesse (Youtube, Vimeo, etc). Essa lista contém as durações dos vídeos no formato hh:mm:ss, e datas por extenso, porém dessa forma: •5 de out. de 2020

Sou leigo em RegEx e no uso do "sed", por isso peço ajuda para substituir os dois pontos das durações por apóstrofes, e ainda inserir espaços, traços simples e parêntesis, conforme o exemplo abaixo:

Texto original (lista.txt):
5:11
30:39
1:08:15
12:04:37
Nesse exemplo temos as durações de vídeos: 5 min e 11 s, 30 min e 39 s, 1 hora, 8 min e 15 s, e por último 12 horas, 4 min e 37 s

Meu desejo é que com as substituições desejadas, fiquem dessa forma:
(5’11 - p).
(30’39 - p).
(1’08’15 - p).
(12’04’37 - p).
Observe que também quero iniciar cada linha com 1 espaço em branco: " (5'11 - p)."

Já usei o comando abaixo, conforme minha pergunta em outro post:
sed -ri “s/^([0-9]{2})(:)([0-9]{2})$/ (\1’\3 - p)./” lista.txt

Mas nesse caso alterou apenas o “30:39” para " (30’39 - p)."

Já que minha lista não contém um formato padrão de horas para "00:05:11" no caso do primeiro exemplo, ficarei satisfeito se me passarem comandos distintos para alterar cada conjunto de durações: m:ss (5:11), mm:ss (05:11), h:mm:ss (0:05:11) e hh:mm:ss (00:05:11)


E agora, outro comando para alterar formato de datas:

"•5 de out. de 2020" para " 05-10-2020" (em lugar do "•" entra um espaço em branco)
"•15 de jan. de 2021" para " 15-01-2021"
Se é que tem RegEx para interpretar os meses abreviados dessa forma: "jan." "fev." "mar." até "dez."

Gratidão aos que me ajudarem!


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/04/2021 - 20:16h

rommulo9 escreveu:


msoliver escreveu:

Como não especificou o texto na integra,
fiz uma regex curta e genérica.

--------------------------------------------------------------------------
Se for o caso, me passa um comando por vez, para alterar cada uma das seguintes durações:
0:01 a 9:59 --> ?
10:00 a 59:59 --> $ sed -r "s/^([0-9]{2})(:)([0-9]{2})$/ (\1\'\3 - p)./" lista.txt (comando sugerido em outro post, que deu certo para 2 duplas de dígitos)
1:00:00 a 10:00:00 --> ?

Não é necessário um COMANDO para CADA FORMATO de HORáRIO!
Veja como funciona a Expressão Regular, tem vasto material na internet!
--------------------------------------------------------------------------------------------------------
Qual a saída desejada?????
Curiosidade:
Quer aprender, ou somente o problema resolvido????

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

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________



Olá Marcelo.

Sou um usuário comum que usa o Linux pra coisas básicas (elaborar textos e planilhas sem macros, assistir vídeos, ouvir músicas, navegar na internet, e às vezes editar algum áudio ou vídeo ).
Com o tempo aprendo RegEx. Mas no momento quero apenas solução para obter uma saída conforme abaixo:

(8'09 - p).
Entenda Porquê VOCÊ Pode Ser MULTADO Pela Concessionaria
07-01-2020
Eduardo Aquino
https://www.youtube.com/watch?v=EAdt0zH407U

(10'44 - p).
QUAL A DIFERENÇA ENTRE HD, SSD E SSD M.2 NVME NO PC? TESTE PRÁTICO
07-12-2020
TecnoArt
https://www.youtube.com/watch?v=0aU18JHkzC4

(1'20'18 - p).
O Guia DEFINITIVO de UBUNTU para Devs Iniciantes
12-07-2019
Fabio Akita
https://www.youtube.com/watch?v=epiyExCyb2s


O original é:

8:09
Entenda Porquê VOCÊ Pode Ser MULTADO Pela Concessionaria
•7 de jan. de 2020
Eduardo Aquino
https://www.youtube.com/watch?v=EAdt0zH407U

10:44
QUAL A DIFERENÇA ENTRE HD, SSD E SSD M.2 NVME NO PC? TESTE PRÁTICO
•7 de dez. de 2020
TecnoArt
https://www.youtube.com/watch?v=0aU18JHkzC4

1:20:18
O Guia DEFINITIVO de UBUNTU para Devs Iniciantes
•12 de jul. de 2019
Fabio Akita
https://www.youtube.com/watch?v=epiyExCyb2s

Considerando que as datas estão fora de padrão, me dou por satisfeito se resolver apenas as durações, blz?

Boa noite Rommulo.
Formatação do horário:
sed -ri "s/^[0-9]:[0-9]{2}(:[0-9]{2})?/0&/;s/:/'/g;s/^[0-9']+$/ (& - p)./;" lista.txt
-----------------------------------------------------------------------------------------------------
Formata "data"
regex=$(printf "s/%(%b./-%m-/;)T\n" $(seq 10800 2678400 32140800))
-------------------------------------------------------------------------------------------------------
Teste da regex:
echo "${regex}"
s/jan./-01-/;
s/fev./-02-/;
s/mar./-03-/;
s/abr./-04-/;
s/mai./-05-/;
s/jun./-06-/;
s/jul./-07-/;
s/ago./-08-/;
s/set./-09-/;
s/out./-10-/;
s/nov./-11-/;
s/dez./-12-/;
------------------------------------------------------------------------------------------
sed -i "/^•/s/•/ /;s/ de //g;${regex}" lista.txt

Bunus:
Para fazer "buscas na lista....
awk 'BEGIN{RS="\n\n";FS="\n";} $2~/UBUNTU/ {print $0}' lista.txt
Onde:
$1 =» Duração
$2 =» Titulo
$3 =» Data
$4 =» Autor
$5 =» Link

Quando Resolvido, não esqueça de MARCAR o tópico como Resolvido e a MELHOR RESPOSTA.


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________


3. Re: Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/04/2021 - 16:56h

rommulo9 escreveu:

Olá pessoal.

Pouco tempo atrás postei aqui uma pergunta semelhante, e por falta de internet (área rural) não finalizei o tópico a tempo.
Desta vez estou refazendo a pergunta, porém de forma mais abrangente.

Eu tenho uma lista em texto simples (txt), listando diversos vídeos de meu interesse (Youtube, Vimeo, etc). Essa lista contém as durações dos vídeos no formato hh:mm:ss, e datas por extenso, porém dessa forma: •5 de out. de 2020

Sou leigo em RegEx e no uso do "sed", por isso peço ajuda para substituir os dois pontos das durações por apóstrofes, e ainda inserir espaços, traços simples e parêntesis, conforme o exemplo abaixo:

Texto original (lista.txt):
5:11
30:39
1:08:15
12:04:37
Nesse exemplo temos as durações de vídeos: 5 min e 11 s, 30 min e 39 s, 1 hora, 8 min e 15 s, e por último 12 horas, 4 min e 37 s

Meu desejo é que com as substituições desejadas, fiquem dessa forma:
(5’11 - p).
(30’39 - p).
(1’08’15 - p).
(12’04’37 - p).
Observe que também quero iniciar cada linha com 1 espaço em branco: " (5'11 - p)."

Já usei o comando abaixo, conforme minha pergunta em outro post:
sed -ri “s/^([0-9]{2})(:)([0-9]{2})$/ (\1’\3 - p)./” lista.txt

Mas nesse caso alterou apenas o “30:39” para " (30’39 - p)."

Já que minha lista não contém um formato padrão de horas para "00:05:11" no caso do primeiro exemplo, ficarei satisfeito se me passarem comandos distintos para alterar cada conjunto de durações: m:ss (5:11), mm:ss (05:11), h:mm:ss (0:05:11) e hh:mm:ss (00:05:11)


E agora, outro comando para alterar formato de datas:

"•5 de out. de 2020" para " 05-10-2020" (em lugar do "•" entra um espaço em branco)
"•15 de jan. de 2021" para " 15-01-2021"
Se é que tem RegEx para interpretar os meses abreviados dessa forma: "jan." "fev." "mar." até "dez."
Gratidão aos que me ajudarem!


Boa tarde rommulo9.
Vamos por partes....
Veja se é dessa forma que quer a duração:

sed -r "s/^.:..(:..)?/0&/;s/:/'/g;s/^.*$/ (& - p)/" lista.txt
(05'11 - p)
(30'39 - p)
(01'08'15 - p)
(12'04'37 - p)

COMO FUNCIONA:
s/^.:..(:..)?/0&/; => Se tem só um digito no início, coloca um "0"
s/:/'/g; => Troca : por '
s/^.*$/ (& - p)/ => formata, casa tudo, e altera para " (& -p)"; Onde & é o que casou
---------------------------------------------------------------------------------
Dica para alterar o formato de datas
Formate "•5 de out. de 2020"
Para uma entrada válida do comando "date"....
E utilize o mesmo, para obter o formato desejado.
Ou
Case o nome do mês e troque por número:
Ex:
echo "5 out. 2021"|sed 's/ out. /-10-/'
Obviamente, deve ter o comando de substituição para todos os meses.....
sed '....s/ out. /-10-/;...'

Faça uso de um laço e o comando date para "montar" a ReGex.


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.



4. Re: Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas [RESOLVIDO]

Rômulo Peixoto Remédios
rommulo9

(usa Linux Mint)

Enviado em 12/04/2021 - 23:16h

Olá Marcelo Oliver.

Peço desculpas por não ter explicado melhor sobre minha lista que pretendo trabalhar com o "sed": ela possui também outros dados, como títulos dos vídeos, links e nome do respectivo autor ou canal. Segue abaixo o conteúdo da "lista.txt" que criei para testar:

8:09
Entenda Porquê VOCÊ Pode Ser MULTADO Pela Concessionaria
•7 de jan. de 2020
Eduardo Aquino
https://www.youtube.com/watch?v=EAdt0zH407U

10:44
QUAL A DIFERENÇA ENTRE HD, SSD E SSD M.2 NVME NO PC? TESTE PRÁTICO
•7 de dez. de 2020
TecnoArt
https://www.youtube.com/watch?v=0aU18JHkzC4

1:20:18
O Guia DEFINITIVO de UBUNTU para Devs Iniciantes
•12 de jul. de 2019
Fabio Akita
https://www.youtube.com/watch?v=epiyExCyb2s

Ao aplicar o comando que vc me sugeriu:
$ sed "s/^.:..(:..)?/0&/;s/:/'/g;s/^.*$/ (& - p)/" lista.txt

O resultado foi esse:
(8'09 - p)
(Entenda Porquê VOCÊ Pode Ser MULTADO Pela Concessionaria - p)
(•7 de jan. de 2020 - p)
(Eduardo Aquino - p)
(https'//www.youtube.com/watch?v=EAdt0zH407U - p)
( - p)
( - p)
(10'44 - p)
(QUAL A DIFERENÇA ENTRE HD, SSD E SSD M.2 NVME NO PC? TESTE PRÁTICO - p)
(•7 de dez. de 2020 - p)
(TecnoArt - p)
(https'//www.youtube.com/watch?v=0aU18JHkzC4 - p)
( - p)
( - p)
(1'20'18 - p)
(O Guia DEFINITIVO de UBUNTU para Devs Iniciantes - p)
(•12 de jul. de 2019 - p)
(Fabio Akita - p)
(https'//www.youtube.com/watch?v=epiyExCyb2s - p)

Se for o caso, me passa um comando por vez, para alterar cada uma das seguintes durações:
0:01 a 9:59 --> ?
10:00 a 59:59 --> $ sed -r "s/^([0-9]{2})(:)([0-9]{2})$/ (\1\'\3 - p)./" lista.txt (comando sugerido em outro post, que deu certo para 2 duplas de dígitos)
1:00:00 a 10:00:00 --> ?

Eu montaria um shell scipt com todos eles e me daria por satisfeito, ok?


5. Re: Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/04/2021 - 00:48h

rommulo9 escreveu:

Olá Marcelo Oliver.

Peço desculpas por não ter explicado melhor sobre minha lista que pretendo trabalhar com o "sed": ela possui também outros dados, como títulos dos vídeos, links e nome do respectivo autor ou canal. Segue abaixo o conteúdo da "lista.txt" que criei para testar:

8:09
Entenda Porquê VOCÊ Pode Ser MULTADO Pela Concessionaria
•7 de jan. de 2020
Eduardo Aquino
https://www.youtube.com/watch?v=EAdt0zH407U

10:44
QUAL A DIFERENÇA ENTRE HD, SSD E SSD M.2 NVME NO PC? TESTE PRÁTICO
•7 de dez. de 2020
TecnoArt
https://www.youtube.com/watch?v=0aU18JHkzC4

1:20:18
O Guia DEFINITIVO de UBUNTU para Devs Iniciantes
•12 de jul. de 2019
Fabio Akita
https://www.youtube.com/watch?v=epiyExCyb2s

Ao aplicar o comando que vc me sugeriu:
$ sed "s/^.:..(:..)?/0&/;s/:/'/g;s/^.*$/ (& - p)/" lista.txt

O resultado foi esse:
(8'09 - p)
(Entenda Porquê VOCÊ Pode Ser MULTADO Pela Concessionaria - p)
(•7 de jan. de 2020 - p)
(Eduardo Aquino - p)
(https'//www.youtube.com/watch?v=EAdt0zH407U - p)
( - p)
( - p)
(10'44 - p)
(QUAL A DIFERENÇA ENTRE HD, SSD E SSD M.2 NVME NO PC? TESTE PRÁTICO - p)
(•7 de dez. de 2020 - p)
(TecnoArt - p)
(https'//www.youtube.com/watch?v=0aU18JHkzC4 - p)
( - p)
( - p)
(1'20'18 - p)
(O Guia DEFINITIVO de UBUNTU para Devs Iniciantes - p)
(•12 de jul. de 2019 - p)
(Fabio Akita - p)
(https'//www.youtube.com/watch?v=epiyExCyb2s - p)

Se for o caso, me passa um comando por vez, para alterar cada uma das seguintes durações:
0:01 a 9:59 --> ?
10:00 a 59:59 --> $ sed -r "s/^([0-9]{2})(:)([0-9]{2})$/ (\1\'\3 - p)./" lista.txt (comando sugerido em outro post, que deu certo para 2 duplas de dígitos)
1:00:00 a 10:00:00 --> ?


Eu montaria um shell scipt com todos eles e me daria por satisfeito, ok?

-----------------------------------------------------------------------------------------------------
Como não especificou o texto na integra,
fiz uma regex curta e genérica.

--------------------------------------------------------------------------
Se for o caso, me passa um comando por vez, para alterar cada uma das seguintes durações:
0:01 a 9:59 --> ?
10:00 a 59:59 --> $ sed -r "s/^([0-9]{2})(:)([0-9]{2})$/ (\1\'\3 - p)./" lista.txt (comando sugerido em outro post, que deu certo para 2 duplas de dígitos)
1:00:00 a 10:00:00 --> ?

Não é necessário um COMANDO para CADA FORMATO de HORáRIO!
Veja como funciona a Expressão Regular, tem vasto material na internet!
--------------------------------------------------------------------------------------------------------
Qual a saída desejada?????
Curiosidade:
Quer aprender, ou somente o problema resolvido????

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

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________




6. Re: Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas [RESOLVIDO]

Rômulo Peixoto Remédios
rommulo9

(usa Linux Mint)

Enviado em 13/04/2021 - 19:16h


msoliver escreveu:

Como não especificou o texto na integra,
fiz uma regex curta e genérica.

--------------------------------------------------------------------------
Se for o caso, me passa um comando por vez, para alterar cada uma das seguintes durações:
0:01 a 9:59 --> ?
10:00 a 59:59 --> $ sed -r "s/^([0-9]{2})(:)([0-9]{2})$/ (\1\'\3 - p)./" lista.txt (comando sugerido em outro post, que deu certo para 2 duplas de dígitos)
1:00:00 a 10:00:00 --> ?

Não é necessário um COMANDO para CADA FORMATO de HORáRIO!
Veja como funciona a Expressão Regular, tem vasto material na internet!
--------------------------------------------------------------------------------------------------------
Qual a saída desejada?????
Curiosidade:
Quer aprender, ou somente o problema resolvido????

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

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________



Olá Marcelo.

Sou um usuário comum que usa o Linux pra coisas básicas (elaborar textos e planilhas sem macros, assistir vídeos, ouvir músicas, navegar na internet, e às vezes editar algum áudio ou vídeo ).
Com o tempo aprendo RegEx. Mas no momento quero apenas solução para obter uma saída conforme abaixo:

(8'09 - p).
Entenda Porquê VOCÊ Pode Ser MULTADO Pela Concessionaria
07-01-2020
Eduardo Aquino
https://www.youtube.com/watch?v=EAdt0zH407U

(10'44 - p).
QUAL A DIFERENÇA ENTRE HD, SSD E SSD M.2 NVME NO PC? TESTE PRÁTICO
07-12-2020
TecnoArt
https://www.youtube.com/watch?v=0aU18JHkzC4

(1'20'18 - p).
O Guia DEFINITIVO de UBUNTU para Devs Iniciantes
12-07-2019
Fabio Akita
https://www.youtube.com/watch?v=epiyExCyb2s


O original é:

8:09
Entenda Porquê VOCÊ Pode Ser MULTADO Pela Concessionaria
•7 de jan. de 2020
Eduardo Aquino
https://www.youtube.com/watch?v=EAdt0zH407U

10:44
QUAL A DIFERENÇA ENTRE HD, SSD E SSD M.2 NVME NO PC? TESTE PRÁTICO
•7 de dez. de 2020
TecnoArt
https://www.youtube.com/watch?v=0aU18JHkzC4

1:20:18
O Guia DEFINITIVO de UBUNTU para Devs Iniciantes
•12 de jul. de 2019
Fabio Akita
https://www.youtube.com/watch?v=epiyExCyb2s

Considerando que as datas estão fora de padrão, me dou por satisfeito se resolver apenas as durações, blz?


7. Re: Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas [RESOLVIDO]

Rômulo Peixoto Remédios
rommulo9

(usa Linux Mint)

Enviado em 13/04/2021 - 21:45h


msoliver escreveu:

Boa noite Rommulo.
Formatação do horário:
sed -ri "s/^[0-9]:[0-9]{2}(:[0-9]{2})?/0&/;s/:/'/g;s/^[0-9']+$/ (& - p)./;" lista.txt
-----------------------------------------------------------------------------------------------------
Formata "data"
regex=$(printf "s/%(%b./-%m-/;)T\n" $(seq 10800 2678400 32140800))
-------------------------------------------------------------------------------------------------------
Teste da regex:
echo "${regex}"
s/jan./-01-/;
s/fev./-02-/;
s/mar./-03-/;
s/abr./-04-/;
s/mai./-05-/;
s/jun./-06-/;
s/jul./-07-/;
s/ago./-08-/;
s/set./-09-/;
s/out./-10-/;
s/nov./-11-/;
s/dez./-12-/;
------------------------------------------------------------------------------------------
sed -i "/^•/s/•/ /;s/ de //g;${regex}" lista.txt

Bunus:
Para fazer "buscas na lista....
awk 'BEGIN{RS="\n\n";FS="\n";} $2~/UBUNTU/ {print $0}' lista.txt
Onde:
$1 =» Duração
$2 =» Titulo
$3 =» Data
$4 =» Autor
$5 =» Link

Quando Resolvido, não esqueça de MARCAR o tópico como Resolvido e a MELHOR RESPOSTA.


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________


Boa noite, Marcelo.

Funcionou 100% como eu desejava!
Os comandos para alterar as durações e formatar as datas, me parecem tão elaborados quanto as mais requintadas programações em Java, Perl, C++ e coisas do gênero. Em suma, vc é um gênio!

Gratidão mesmo!




8. Re: Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas [RESOLVID

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/04/2021 - 23:26h

rommulo9 escreveu:

Boa noite, Marcelo.
Funcionou 100% como eu desejava!
Os comandos para alterar as durações e formatar as datas, me parecem tão elaborados quanto as mais requintadas programações em Java, Perl, C++ e coisas do gênero. Em suma, vc é um gênio!

Gratidão mesmo!

Muito obrigado, Rommulo.
---------------------------------------------------------------------------------------------------------------
Tem ERRO na formatação da "duração": (Alterando : para ' na url"
Correção:
sed -r "s/^[0-9]:[0-9]{2}(:[0-9]{2})?$/0&/;/^[0-9]{2}:/s/:/'/g;s/^[0-9']+$/ (& - p)./;" lista.txt 

----------------------------------------------------------------------------------------------------------------
O awk é bastante interessante:
awk 'BEGIN{RS="\n\n";FS="\n";}$2~/UBUNTU/{printf "Duração:#%s\nTitulo:#%s\nData:#%s\nAutor:#%s\nUrl:#%s\n",$1,$2,$3,$4,$5}' lista.txt|column -s'#' -t 

Duração: (01'20'18 - p).
Titulo: O Guia DEFINITIVO UBUNTU para Devs Iniciantes
Data: 12-07-2019
Autor: Fabio Akita
Url: https'//www.y-10-be.com/watch?v=epiyExCyb2s
----------------------------------------------------------------------------------------------------------------
Recomendo:
https://aurelio.net/regex/guia/

______________________________________________________________________
Att.: Marcelo Oliver




9. Re: Comandos com RegEx para substituir durações 00:00 por 00'00 e alterar formato de datas [RESOLVIDO]

Rômulo Peixoto Remédios
rommulo9

(usa Linux Mint)

Enviado em 16/04/2021 - 16:46h


msoliver escreveu:

rommulo9 escreveu:

Boa noite, Marcelo.
Funcionou 100% como eu desejava!
Os comandos para alterar as durações e formatar as datas, me parecem tão elaborados quanto as mais requintadas programações em Java, Perl, C++ e coisas do gênero. Em suma, vc é um gênio!

Gratidão mesmo!

Muito obrigado, Rommulo.
---------------------------------------------------------------------------------------------------------------
Tem ERRO na formatação da "duração": (Alterando : para ' na url"
Correção:
sed -r "s/^[0-9]:[0-9]{2}(:[0-9]{2})?$/0&/;/^[0-9]{2}:/s/:/'/g;s/^[0-9']+$/ (& - p)./;" lista.txt 

----------------------------------------------------------------------------------------------------------------
O awk é bastante interessante:
awk 'BEGIN{RS="\n\n";FS="\n";}$2~/UBUNTU/{printf "Duração:#%s\nTitulo:#%s\nData:#%s\nAutor:#%s\nUrl:#%s\n",$1,$2,$3,$4,$5}' lista.txt|column -s'#' -t 

Duração: (01'20'18 - p).
Titulo: O Guia DEFINITIVO UBUNTU para Devs Iniciantes
Data: 12-07-2019
Autor: Fabio Akita
Url: https'//www.y-10-be.com/watch?v=epiyExCyb2s
----------------------------------------------------------------------------------------------------------------
Recomendo:
https://aurelio.net/regex/guia/

______________________________________________________________________
Att.: Marcelo Oliver




Opa... agora sim, 100% funcional e com as urls preservadas.

Novamente, meus sinceros agradecimentos!