Discussion:
[shell-script] Script com Regex
Michel michelmoreira@gmail.com [shell-script]
2017-10-23 11:20:10 UTC
Permalink
bom dia a todos,

Eu e um amigo estamos desenvolvendo um script que pega referencias bibicas
de arquivos texto. O script funciona parcialmente, pois esta acontecendo
algo muito estranho. Vejam:

*RegExp. Pattern:*

[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[a-zà-ÿ]+\.?)) +(( *;
*)?(\d+:\d+[abc]?( *[\-,] *\d+[abc]?)*))+


*Test String: *

Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23; Col.
13:14-16; 1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8; John
15:26; Gal. 3:13; 1 Pet. 2:24

Há 2 ocorrências da referencia "1 Cor. 15:45" no test string.

a 2a ocorrência de "1 Cor. 15:45" o "1 " não eh reconhecido.. pega
apenas a partir de "Cor." pra frente.
Porem a 1ra ocorrência, pega tudo !

E isso acontece em outros lugares tbm.

Grato por qq ajuda, pois já gastamos alguns neurÎnios nisso e não
encontramos solução.

Também é muito bem vindo alguma melhoria nessa Regex, pois não somos
especialistas no assunto, apenas lemos o livro do Aurélio, do Júlio e umas
pesquisadas no Google.

Forte Abraço

MiShell ;-)

echo
"38498623798315430116174552327142800912294602133407093483096115302909743809121251297856778P"|
dc

<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Livre
de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2017-10-23 12:23:47 UTC
Permalink
Fala Michel,

Eu não entendo absolutamente nada de referências bíblicas e portanto não
sei o que vc está procurando. Seria bom vc dizer como é a formatação de uma
referência bíblica para que ateus, budistas, umbandistas, muçulmanos e
outros mais, possam ajudá-lo.

*Novidade!* Dia 08/11​ abriremos as inscrições para um treinamento
de Shell Script que será lecionado em 5 semanas no formato EAD
e que será ministrado por Julio Neves e Rubens Queiroz (dicas-l)
Todos os detalhes em:
http://www.dicas-l.com.br/programacao-shell-linux/resultados_enquete.php.

Abcs,
Julio

*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um preço, **no mínimo, 50% mais*
*barato que qualquer curso.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Michel ***@gmail.com [shell-script]
bom dia a todos,
Eu e um amigo estamos desenvolvendo um script que pega referencias
bibicas de arquivos texto. O script funciona parcialmente, pois esta
*RegExp. Pattern:*
[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[a-zà-ÿ]+\.?)) +(( *;
*)?(\d+:\d+[abc]?( *[\-,] *\d+[abc]?)*))+
*Test String: *
Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23; Col.
13:14-16; 1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8; John
15:26; Gal. 3:13; 1 Pet. 2:24
Há 2 ocorrências da referencia "1 Cor. 15:45" no test string.
a 2a ocorrência de "1 Cor. 15:45" o "1 " não eh reconhecido.. pega
apenas a partir de "Cor." pra frente.
Porem a 1ra ocorrência, pega tudo !
E isso acontece em outros lugares tbm.
Grato por qq ajuda, pois já gastamos alguns neurÎnios nisso e não
encontramos solução.
Também é muito bem vindo alguma melhoria nessa Regex, pois não somos
especialistas no assunto, apenas lemos o livro do Aurélio, do Júlio e umas
pesquisadas no Google.
Forte Abraço
MiShell ;-)
echo "384986237983154301161745523271428009122946021334070934830961
15302909743809121251297856778P"|dc
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Livre
de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#m_1655453406886183940_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
Michel michelmoreira@gmail.com [shell-script]
2017-10-23 13:00:56 UTC
Permalink
Oi Julio, obrigado pela resposta,

realmente, dei outros detalhes e esqueci desse. Foi mal :-)

Vamos lá

Normalmente em PT-BR temos:

Livro Capitulo : Versiculo
Exemplo:

Jo 4:5

Nesse caso quero Livro de João Capitulo 4 Versículo 5
Mas tbm pode ser

Jo 4:5-7

Livro de João Capitulo 4 Versículos de 5 a 7

Resumindo:

Os dois pontos (:) separam o capítulo dos versículos;
O hífen (-) indica uma sequência contínua de capítulos ou de versículos;
A vírgula (,) indica uma seqÌência não contínua de versículos;
O ponto-e-vírgula (;) indica um novo capítulo do mesmo livro ou de outro
livro caso seguido de nova abreviação.

abaixo uma tabela com o novo testamento apenas, mas segue a mesma logica
para o velho testamento e para biblias em outras linguas

Livro Abreviatura Capítulos
Mateus Mt 28
Marcos Mc 16
Lucas Lc 24
João Jo 21
Atos dos Apóstolos At 28
Romanos Rm 16
1 Coríntios 1 Co 16
2 Coríntios 2 Co 13
Gálatas Gl 6
Efésios Ef 6
Filipenses Fp 4
Colossenses Cl 4
1 Tessalonicenses 1 Ts 5
2 Tessalonicenses 2 Ts 3
1 Timóteo 1 Tm 6
2 Timóteo 2 Tm 4
Tito Tt 3
Filemon Fm 1
Hebreus Hb 13
Tiago Tg 5
1 Pedro 1 Pe 5
2 Pedro 2 Pe 3
1 João 1 Jo 5
2 João 2 Jo 1
3 João 3 Jo 1
Judas Jd 1
Apocalipse Ap 22


Novamente obrigado

<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Livre
de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Att,

Michel I. Moreira
echo
"38498623798315430116174552327142800912294602133407093483096115302909743809121251297856778P"|dc
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
Fala Michel,
Eu não entendo absolutamente nada de referências bíblicas e portanto não
sei o que vc está procurando. Seria bom vc dizer como é a formatação de uma
referência bíblica para que ateus, budistas, umbandistas, muçulmanos e
outros mais, possam ajudá-lo.
*Novidade!* Dia 08/11​ abriremos as inscrições para um treinamento
de Shell Script que será lecionado em 5 semanas no formato EAD
e que será ministrado por Julio Neves e Rubens Queiroz (dicas-l)
http://www.dicas-l.com.br/programacao-shell-linux/resultados_enquete.php.
Abcs,
Julio
*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um preço, **no mínimo, 50% mais*
*barato que qualquer curso.*
​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Michel ***@gmail.com [shell-script]
bom dia a todos,
Eu e um amigo estamos desenvolvendo um script que pega referencias
bibicas de arquivos texto. O script funciona parcialmente, pois esta
*RegExp. Pattern:*
[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[a-zà-ÿ]+\.?)) +(( *;
*)?(\d+:\d+[abc]?( *[\-,] *\d+[abc]?)*))+
*Test String: *
Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23;
Col. 13:14-16; 1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8;
John 15:26; Gal. 3:13; 1 Pet. 2:24
Há 2 ocorrências da referencia "1 Cor. 15:45" no test string.
a 2a ocorrência de "1 Cor. 15:45" o "1 " não eh reconhecido.. pega
apenas a partir de "Cor." pra frente.
Porem a 1ra ocorrência, pega tudo !
E isso acontece em outros lugares tbm.
Grato por qq ajuda, pois já gastamos alguns neurÎnios nisso e não
encontramos solução.
Também é muito bem vindo alguma melhoria nessa Regex, pois não somos
especialistas no assunto, apenas lemos o livro do Aurélio, do Júlio e umas
pesquisadas no Google.
Forte Abraço
MiShell ;-)
echo "38498623798315430116174552327142800912294602133407093483096
115302909743809121251297856778P"|dc
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Livre
de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#m_4187377459696723868_m_1655453406886183940_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
phfbettega@yahoo.com.br [shell-script]
2017-10-23 12:51:30 UTC
Permalink
Olá Michel, o grep com a opção -E casou tudo depois de algumas alterações.
[a-zà-ÿ] por [[:lower:]]
\d por [0-9]
[\-,] por [-,] (dentro da lista todo mundo é igual, ou quase :) )

grep -Eo '[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[[:lower:]]+\.?)) +(( *; *)?([0-9]+:[0-9]+[abc]?( *[-,]
*[0-9]+[abc]?)*))+' <<<'Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23; Col. 13:14-16;
1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24'
Col. 13:14-16
; 1 Cor. 15:45
; Matt. 28:19
; John 14:9-10, 16-17, 20, 23
; Col. 13:14-16
; 1 Cor. 15:45
; Matt. 1:16, 21, 23
; Col. 1:15
; Acts 1:8
; John 15:26
; Gal. 3:13
; 1 Pet. 2:24

Abraços Paulo
Post by Michel ***@gmail.com [shell-script]
bom dia a todos,
Eu e um amigo estamos desenvolvendo um script que pega referencias bibicas de arquivos texto. O script
*RegExp. Pattern:*
[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[a-zà-ÿ]+\.?)) +(( *; *)?(\d+:\d+[abc]?( *[\-,] *\d+[abc]?)*))+
*Test String: *
Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23; Col. 13:14-16; 1 Cor. 15:45; Matt.
1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24
Há 2 ocorrências da referencia "1 Cor. 15:45" no test string.
a 2a ocorrência de "1 Cor. 15:45"  o  "1 " não eh reconhecido..  pega apenas a partir de "Cor." pra frente.
Porem a 1ra ocorrência, pega tudo !
E isso acontece em outros lugares tbm.
Grato por qq ajuda, pois já gastamos alguns neurÎnios nisso e não encontramos solução.
Também é muito bem vindo alguma melhoria nessa Regex, pois não somos especialistas no assunto, apenas lemos o
livro do Aurélio, do Júlio e umas pesquisadas no Google.
Forte Abraço
MiShell ;-)
echo "38498623798315430116174552327142800912294602133407093483096115302909743809121251297856778P"|dc
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Livre de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
phfbettega@yahoo.com.br [shell-script]
2017-10-23 13:35:02 UTC
Permalink
Corrigindo, dentro da lista todo mundo é normal. Fui conferir no livro rs.
Outra coisa, o grep com a opção -P (ER Perl) casa tudo e não dá erro com
as listas [à-ŷ] e [\-,], e reconhece o \d.
Post by ***@yahoo.com.br [shell-script]
Olá Michel, o grep com a opção -E casou tudo depois de algumas alterações.
[a-zà-ÿ] por [[:lower:]]
\d por [0-9]
[\-,] por [-,] (dentro da lista todo mundo é igual, ou quase :) )
grep -Eo '[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[[:lower:]]+\.?)) +(( *; *)?([0-9]+:[0-9]+[abc]?( *[-,]
*[0-9]+[abc]?)*))+' <<<'Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23; Col. 13:14-16;
1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24'
Col. 13:14-16
; 1 Cor. 15:45
; Matt. 28:19
; John 14:9-10, 16-17, 20, 23
; Col. 13:14-16
; 1 Cor. 15:45
; Matt. 1:16, 21, 23
; Col. 1:15
; Acts 1:8
; John 15:26
; Gal. 3:13
; 1 Pet. 2:24
Abraços Paulo
Post by Michel ***@gmail.com [shell-script]
bom dia a todos,
Eu e um amigo estamos desenvolvendo um script que pega referencias bibicas de arquivos texto. O script
*RegExp. Pattern:*
[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[a-zà-ÿ]+\.?)) +(( *; *)?(\d+:\d+[abc]?( *[\-,] *\d+[abc]?)*))+
*Test String: *
Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23; Col. 13:14-16; 1 Cor. 15:45; Matt.
1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24
Há 2 ocorrências da referencia "1 Cor. 15:45" no test string.
a 2a ocorrência de "1 Cor. 15:45"  o  "1 " não eh reconhecido..  pega apenas a partir de "Cor." pra frente.
Porem a 1ra ocorrência, pega tudo !
E isso acontece em outros lugares tbm.
Grato por qq ajuda, pois já gastamos alguns neurÎnios nisso e não encontramos solução.
Também é muito bem vindo alguma melhoria nessa Regex, pois não somos especialistas no assunto, apenas lemos o
livro do Aurélio, do Júlio e umas pesquisadas no Google.
Forte Abraço
MiShell ;-)
echo "38498623798315430116174552327142800912294602133407093483096115302909743809121251297856778P"|dc
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Post by Michel ***@gmail.com [shell-script]
Livre de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
Post by Michel ***@gmail.com [shell-script]
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Michel michelmoreira@gmail.com [shell-script]
2017-10-23 13:45:13 UTC
Permalink
Ola Paulo, muito obrigado pela resposta.

Funcionou muito bem, apenas para tirar o ; da frente dos livros fiz:

cat teste.txt|grep -Eo '[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]?
?([A-Z](\.|[[:lower:]]+\.?)) +(( *; *)?([0-9]+:[0-9]+[abc]?( *[-,]
*[0-9]+[abc]?)*))+'|sed 's/\;//'

mas... tem como colocar tudo no Grep sem usar o SED

Abrs



Att,

Michel I. Moreira
echo
"38498623798315430116174552327142800912294602133407093483096115302909743809121251297856778P"|dc
Post by ***@yahoo.com.br [shell-script]
Olá Michel, o grep com a opção -E casou tudo depois de algumas alterações.
[a-zà-ÿ] por [[:lower:]]
\d por [0-9]
[\-,] por [-,] (dentro da lista todo mundo é igual, ou quase :) )
grep -Eo '[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[[:lower:]]+\.?)) +((
*; *)?([0-9]+:[0-9]+[abc]?( *[-,]
*[0-9]+[abc]?)*))+' <<<'Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John
14:9-10, 16-17, 20, 23; Col. 13:14-16;
1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24'
Col. 13:14-16
; 1 Cor. 15:45
; Matt. 28:19
; John 14:9-10, 16-17, 20, 23
; Col. 13:14-16
; 1 Cor. 15:45
; Matt. 1:16, 21, 23
; Col. 1:15
; Acts 1:8
; John 15:26
; Gal. 3:13
; 1 Pet. 2:24
Abraços Paulo
Post by Michel ***@gmail.com [shell-script]
bom dia a todos,
Eu e um amigo estamos desenvolvendo um script que pega referencias
bibicas de arquivos texto. O script
Post by Michel ***@gmail.com [shell-script]
*RegExp. Pattern:*
[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[a-zà-ÿ]+\.?)) +(( *;
*)?(\d+:\d+[abc]?( *[\-,] *\d+[abc]?)*))+
Post by Michel ***@gmail.com [shell-script]
*Test String: *
Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23;
Col. 13:14-16; 1 Cor. 15:45; Matt.
Post by Michel ***@gmail.com [shell-script]
1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24
Há 2 ocorrências da referencia "1 Cor. 15:45" no test string.
a 2a ocorrência de "1 Cor. 15:45" o "1 " não eh reconhecido.. pega
apenas a partir de "Cor." pra frente.
Post by Michel ***@gmail.com [shell-script]
Porem a 1ra ocorrência, pega tudo !
E isso acontece em outros lugares tbm.
Grato por qq ajuda, pois já gastamos alguns neurÎnios nisso e não
encontramos solução.
Post by Michel ***@gmail.com [shell-script]
Também é muito bem vindo alguma melhoria nessa Regex, pois não somos
especialistas no assunto, apenas lemos o
Post by Michel ***@gmail.com [shell-script]
livro do Aurélio, do Júlio e umas pesquisadas no Google.
Forte Abraço
MiShell ;-)
echo "384986237983154301161745523271428009122946021334070934830961
15302909743809121251297856778P"|dc
Post by Michel ***@gmail.com [shell-script]
<http://www.avg.com/email-signature?utm_medium=email&
utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Post by Michel ***@gmail.com [shell-script]
Livre de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&
utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
Post by Michel ***@gmail.com [shell-script]
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Livre
de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
phfbettega@yahoo.com.br [shell-script]
2017-10-23 20:27:12 UTC
Permalink
Agora que eu vi tua resposta pro email do Mestre Júlio.
"Resumindo:

Os dois pontos (:) separam o capítulo dos versículos;
O hífen (-) indica uma sequência contínua de capítulos ou de versículos;
A vírgula (,) indica uma seqÌência não contínua de versículos;
O ponto-e-vírgula (;) indica um novo capítulo do mesmo livro ou de outro livro caso seguido de nova abreviação."

Levando em conta essa explicação e a linha de entrada que vc postou, essa ER funciona.
Não sei se funciona no teste.txt :)

grep -Eo '([A-Z]|[0-9]+ +[A-Z])[a-z]+\.? +[0-9:, -]+' <<<'Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John
14:9-10, 16-17, 20, 23; Col. 13:14-16; 1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal.
3:13; 1 Pet. 2:24'
Col. 13:14-16
1 Cor. 15:45
Matt. 28:19
John 14:9-10, 16-17, 20, 23
Col. 13:14-16
1 Cor. 15:45
Matt. 1:16, 21, 23
Col. 1:15
Acts 1:8
John 15:26
Gal. 3:13
1 Pet. 2:24

Abraços Paulo
Post by Michel ***@gmail.com [shell-script]
Ola Paulo, muito obrigado pela resposta.
cat teste.txt|grep -Eo '[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[[:lower:]]+\.?)) +(( *;
*)?([0-9]+:[0-9]+[abc]?( *[-,] *[0-9]+[abc]?)*))+'|sed 's/\;//'
mas... tem como colocar tudo no Grep sem usar o SED
Abrs
Att,
Michel I. Moreira
echo "38498623798315430116174552327142800912294602133407093483096115302909743809121251297856778P"|dc
__
Olá Michel, o grep com a opção -E casou tudo depois de algumas alterações.
[a-zà-ÿ] por [[:lower:]]
\d por [0-9]
[\-,] por [-,] (dentro da lista todo mundo é igual, ou quase :) )
grep -Eo '[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[[:lower:]]+\.?)) +(( *; *)?([0-9]+:[0-9]+[abc]?( *[-,]
*[0-9]+[abc]?)*))+' <<<'Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23; Col. 13:14-16;
1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24'
Col. 13:14-16
; 1 Cor. 15:45
; Matt. 28:19
; John 14:9-10, 16-17, 20, 23
; Col. 13:14-16
; 1 Cor. 15:45
; Matt. 1:16, 21, 23
; Col. 1:15
; Acts 1:8
; John 15:26
; Gal. 3:13
; 1 Pet. 2:24
Abraços Paulo
Post by Michel ***@gmail.com [shell-script]
bom dia a todos,
Eu e um amigo estamos desenvolvendo um script que pega referencias bibicas de arquivos texto. O script
*RegExp. Pattern:*
[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[a-zà-ÿ]+\.?)) +(( *; *)?(\d+:\d+[abc]?( *[\-,] *\d+[abc]?)*))+
*Test String: *
Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23; Col. 13:14-16; 1 Cor. 15:45; Matt.
1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24
Há 2 ocorrências da referencia "1 Cor. 15:45" no test string.
a 2a ocorrência de "1 Cor. 15:45"  o  "1 " não eh reconhecido..  pega apenas a partir de "Cor." pra frente.
Porem a 1ra ocorrência, pega tudo !
E isso acontece em outros lugares tbm.
Grato por qq ajuda, pois já gastamos alguns neurÎnios nisso e não encontramos solução.
Também é muito bem vindo alguma melhoria nessa Regex, pois não somos especialistas no assunto, apenas lemos o
livro do Aurélio, do Júlio e umas pesquisadas no Google.
Forte Abraço
MiShell ;-)
echo "38498623798315430116174552327142800912294602133407093483096115302909743809121251297856778P"|dc
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>>
Post by Michel ***@gmail.com [shell-script]
Livre de vírus. www.avg.com <http://www.avg.com>
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>>.
Post by Michel ***@gmail.com [shell-script]
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Livre de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Responder através da web
'Ernander (Nander)' ernander@gmail.com [shell-script]
2017-10-23 21:21:55 UTC
Permalink
Michel

Poderia destrinchar isso e explicar, SE Nao for pedir muito?
Post by Michel ***@gmail.com [shell-script]
Ola Paulo, muito obrigado pela resposta.
cat teste.txt|grep -Eo '[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]?
?([A-Z](\.|[[:lower:]]+\.?)) +(( *; *)?([0-9]+:[0-9]+[abc]?( *[-,]
*[0-9]+[abc]?)*))+'|sed 's/\;//'
mas... tem como colocar tudo no Grep sem usar o SED
Abrs
Att,
Michel I. Moreira
echo "384986237983154301161745523271428009122946021334070934830961
15302909743809121251297856778P"|dc
Post by ***@yahoo.com.br [shell-script]
Olá Michel, o grep com a opção -E casou tudo depois de algumas alterações.
[a-zà-ÿ] por [[:lower:]]
\d por [0-9]
[\-,] por [-,] (dentro da lista todo mundo é igual, ou quase :) )
grep -Eo '[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[[:lower:]]+\.?))
+(( *; *)?([0-9]+:[0-9]+[abc]?( *[-,]
*[0-9]+[abc]?)*))+' <<<'Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John
14:9-10, 16-17, 20, 23; Col. 13:14-16;
1 Cor. 15:45; Matt. 1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal.
3:13; 1 Pet. 2:24'
Col. 13:14-16
; 1 Cor. 15:45
; Matt. 28:19
; John 14:9-10, 16-17, 20, 23
; Col. 13:14-16
; 1 Cor. 15:45
; Matt. 1:16, 21, 23
; Col. 1:15
; Acts 1:8
; John 15:26
; Gal. 3:13
; 1 Pet. 2:24
Abraços Paulo
Post by Michel ***@gmail.com [shell-script]
bom dia a todos,
Eu e um amigo estamos desenvolvendo um script que pega referencias
bibicas de arquivos texto. O script
Post by Michel ***@gmail.com [shell-script]
*RegExp. Pattern:*
[ ;{(]?([A-Z0-9]{0,3} *)?[1-3]? ?([A-Z](\.|[a-zà-ÿ]+\.?)) +(( *;
*)?(\d+:\d+[abc]?( *[\-,] *\d+[abc]?)*))+
Post by Michel ***@gmail.com [shell-script]
*Test String: *
Col. 13:14-16; 1 Cor. 15:45; Matt. 28:19; John 14:9-10, 16-17, 20, 23;
Col. 13:14-16; 1 Cor. 15:45; Matt.
Post by Michel ***@gmail.com [shell-script]
1:16, 21, 23; Col. 1:15; Acts 1:8; John 15:26; Gal. 3:13; 1 Pet. 2:24
Há 2 ocorrências da referencia "1 Cor. 15:45" no test string.
a 2a ocorrência de "1 Cor. 15:45" o "1 " não eh reconhecido.. pega
apenas a partir de "Cor." pra frente.
Post by Michel ***@gmail.com [shell-script]
Porem a 1ra ocorrência, pega tudo !
E isso acontece em outros lugares tbm.
Grato por qq ajuda, pois já gastamos alguns neurÎnios nisso e não
encontramos solução.
Post by Michel ***@gmail.com [shell-script]
Também é muito bem vindo alguma melhoria nessa Regex, pois não somos
especialistas no assunto, apenas lemos o
Post by Michel ***@gmail.com [shell-script]
livro do Aurélio, do Júlio e umas pesquisadas no Google.
Forte Abraço
MiShell ;-)
echo "38498623798315430116174552327142800912294602133407093483096
115302909743809121251297856778P"|dc
Post by Michel ***@gmail.com [shell-script]
<http://www.avg.com/email-signature?utm_medium=email&utm_
source=link&utm_campaign=sig-email&utm_content=webmail>
Post by Michel ***@gmail.com [shell-script]
Livre de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_
source=link&utm_campaign=sig-email&utm_content=webmail>.
Post by Michel ***@gmail.com [shell-script]
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Livre
de vírus. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#m_1359903191878736508_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
Continue reading on narkive:
Loading...