Identificar intervalo

13. Re: Identificar intervalo

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 03/11/2017 - 15:21h

drizze escreveu:

A ideia do msoliver foi genial, mas não resolve esse problema, pois ele mexeu na sequência e não pode. Pelo que entendi, precisa pegar as sequências que contenha o menor número nelas e que essa mesma sequência seja maior que 06. Outro detalhe importante é que precisam ser consecutivos, não pode conter número repetido.

Então se eu tenho essa seguinte sequência:
02 02 03 04 05 06 07 01 02 03 04 05 06 07 08 09 10 11 12 05 06 07 01 02 03 04 05 06 07


Creio que deverão ser impressos apenas essas 2 sequências:

01 02 03 04 05 06 07 08 09 10 11 12
01 02 03 04 05 06 07


Estou correto?

No exemplo do seu primeiro post, nos dá o retorno de 01 ao 10, porém, vai até o 15.

Boa tarde Drizze.
Não alterei a sequencia....
A minha lógica foi, montar sequências, e buscar por elas na var SEQ:
SEQ="01 02 03 01 02 03 04
01 02 03 04 05 06 07 08 09 10 
12 13 14 15 16 17 18 19 20"
Observe que no exemplo do 1º post, a sequencia é interrompida. Não tem o nº "11".

mso


  


14. Re: Identificar intervalo

Lui
drizze

(usa Linux Mint)

Enviado em 03/11/2017 - 15:38h

msoliver escreveu:

drizze escreveu:

A ideia do msoliver foi genial, mas não resolve esse problema, pois ele mexeu na sequência e não pode. Pelo que entendi, precisa pegar as sequências que contenha o menor número nelas e que essa mesma sequência seja maior que 06. Outro detalhe importante é que precisam ser consecutivos, não pode conter número repetido.

Então se eu tenho essa seguinte sequência:
02 02 03 04 05 06 07 01 02 03 04 05 06 07 08 09 10 11 12 05 06 07 01 02 03 04 05 06 07


Creio que deverão ser impressos apenas essas 2 sequências:

01 02 03 04 05 06 07 08 09 10 11 12
01 02 03 04 05 06 07


Estou correto?

No exemplo do seu primeiro post, nos dá o retorno de 01 ao 10, porém, vai até o 15.

Boa tarde Drizze.
Não alterei a sequencia....
A minha lógica foi, montar sequências, e buscar por elas na var SEQ:
SEQ="01 02 03 01 02 03 04
01 02 03 04 05 06 07 08 09 10 
12 13 14 15 16 17 18 19 20"
Observe que no exemplo do 1º post, a sequencia é interrompida. Não tem o nº "11".

mso


Exato, a função do primeiro post está mal definida. Mas ainda assim, curti sua ideia.


15. Re: Identificar intervalo

Paulo
paulo1205

(usa Ubuntu)

Enviado em 04/11/2017 - 07:35h

Não acho que precise pegar a sequência porque — duh! — ela é uma sequência. Basta saber identificar onde ela começa e qual o seu comprimento.

O script que eu mostrei faz isso, desde que esteja um número por linha.

Se os números estiverem todos numa mesma linha, contida na variável linha, basta fazer algo como “echo $linha | tr " " \\n | script”.


16. Re: Identificar intervalo

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 04/11/2017 - 19:48h

paulo1205 escreveu:

Não acho que precise pegar a sequência porque — duh! — ela é uma sequência. Basta saber identificar onde ela começa e qual o seu comprimento.

O script que eu mostrei faz isso, desde que esteja um número por linha.

Se os números estiverem todos numa mesma linha, contida na variável linha, basta fazer algo como “echo $linha | tr " " \\n | script”.


Exato ... entendeu perfeitamente ... eu só preciso identificar o intervalo onde começa e onde termina... desde q obedeça aos critérios.

os números estão em linha separados por espaço ... é totalmente viável e é bem provavel de eu precisar mesmo fazer essa identificação da linha numa variável no script original !!!


------------------------------------------| Linux User #621728 |-----------------------------------------

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

------------------------------------------| Linux User #621728 |-----------------------------------------




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts