Grep com números

1. Grep com números

Luis Rafael
rcunhalrc

(usa Outra)

Enviado em 08/03/2020 - 12:29h

Olá, sou curioso na área de script e estava tentando fazer o seguinte:
Tenho um arquivo de texto de perguntas e respostas com a seguinte estrutura:
1-Pergunta numero 1?
a) opçao
b) opçao
c) opçao
d) opção
Até n perguntas com cada pergunta numerada sequencialmente.

Então com uma variável aleatória queria pesquisar a pergunta referente ao valor dessa variável, exemplo se a variavel for igual a 2 vai mostrar a pergunta nro 2 e suas alternativas.
Estava tentando com o comando grep -A 4
problema é que quando a variável é 1 ele mostra a pergunta 1 e a 11 junto, eu queria apenas a 1. Ele sempre mostra todas as linhas que contém o numero 1 independente da posição que o número esteja.
Alguém tem alguma ideia de como fazer? Não sei se fui claro


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 08/03/2020 - 17:26h


rcunhalrc escreveu:

Olá, sou curioso na área de script e estava tentando fazer o seguinte:
Tenho um arquivo de texto de perguntas e respostas com a seguinte estrutura:
1-Pergunta numero 1?
a) opçao
b) opçao
c) opçao
d) opção
Até n perguntas com cada pergunta numerada sequencialmente.

Então com uma variável aleatória queria pesquisar a pergunta referente ao valor dessa variável, exemplo se a variavel for igual a 2 vai mostrar a pergunta nro 2 e suas alternativas.
Estava tentando com o comando grep -A 4
problema é que quando a variável é 1 ele mostra a pergunta 1 e a 11 junto, eu queria apenas a 1. Ele sempre mostra todas as linhas que contém o numero 1 independente da posição que o número esteja.
Alguém tem alguma ideia de como fazer? Não sei se fui claro

Boa tarde Rcunha.
Segue uma alternativa:
grep -E -A4 '^\b1\b' perguntas
1-Pergunta numero 1?
a) opçao
b) opçao
c) opçao
d) opção

Use o "limitador de borda" " \b"
Ou o próprio "-" do texto
grep -E -A4 '^1-' perguntas 


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

3. Paramêtros do grep

Luriel Santana
luriel.santana

(usa Debian)

Enviado em 08/03/2020 - 17:39h

Tenta usar com o paramêtro -E e demilitadores

Exemplo:

grep -E -A4 '^\b1\b'  


Luriel N. de Santana
tlm. +244 947 210 263
email. luriel.santana@gmail.com
skype ID. luriel.santana
url. https://www.linkedin.com/in/lurielsantana


4. Re: Grep com números

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 08/03/2020 - 18:04h


luriel.santana escreveu:

Tenta usar com o paramêtro -E e demilitadores

Exemplo:

grep -E -A4 '^\b1\b'  


Luriel N. de Santana
tlm. +244 947 210 263
email. luriel.santana@gmail.com
skype ID. luriel.santana
url. https://www.linkedin.com/in/lurielsantana


Exatamente o que recomendei.....

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


5. Re: Grep com números

Rogerio
RogerDez

(usa Outra)

Enviado em 08/03/2020 - 18:27h

use um loop de seleção:
https://bash.cyberciti.biz/guide/Select_loop


6. Resolvido

Luis Rafael
rcunhalrc

(usa Outra)

Enviado em 08/03/2020 - 23:55h

Boa noite pessoal. Consegui resolver meu problema utilizando ps aux | grep -w -A 5.
Esse ps aux antes do grep foi o salvador da Pátria.
Obrigado a todos.


7. Re: Grep com números

Luis Rafael
rcunhalrc

(usa Outra)

Enviado em 09/03/2020 - 01:18h

msoliver escreveu:


rcunhalrc escreveu:

Olá, sou curioso na área de script e estava tentando fazer o seguinte:
Tenho um arquivo de texto de perguntas e respostas com a seguinte estrutura:
1-Pergunta numero 1?
a) opçao
b) opçao
c) opçao
d) opção
Até n perguntas com cada pergunta numerada sequencialmente.

Então com uma variável aleatória queria pesquisar a pergunta referente ao valor dessa variável, exemplo se a variavel for igual a 2 vai mostrar a pergunta nro 2 e suas alternativas.
Estava tentando com o comando grep -A 4
problema é que quando a variável é 1 ele mostra a pergunta 1 e a 11 junto, eu queria apenas a 1. Ele sempre mostra todas as linhas que contém o numero 1 independente da posição que o número esteja.
Alguém tem alguma ideia de como fazer? Não sei se fui claro

Boa tarde Rcunha.
Segue uma alternativa:
grep -E -A4 '^\b1\b' perguntas
1-Pergunta numero 1?
a) opçao
b) opçao
c) opçao
d) opção

Use o "limitador de borda" " \b"
Ou o próprio "-" do texto
grep -E -A4 '^1-' perguntas 


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


Excelente! Obrigado



8. Re: Grep com números

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/03/2020 - 18:39h

rcunhalrc escreveu:

msoliver escreveu:


rcunhalrc escreveu:

Olá, sou curioso na área de script e estava tentando fazer o seguinte:
Tenho um arquivo de texto de perguntas e respostas com a seguinte estrutura:
1-Pergunta numero 1?
a) opçao
b) opçao
c) opçao
d) opção
Até n perguntas com cada pergunta numerada sequencialmente.

Então com uma variável aleatória queria pesquisar a pergunta referente ao valor dessa variável, exemplo se a variavel for igual a 2 vai mostrar a pergunta nro 2 e suas alternativas.
Estava tentando com o comando grep -A 4
problema é que quando a variável é 1 ele mostra a pergunta 1 e a 11 junto, eu queria apenas a 1. Ele sempre mostra todas as linhas que contém o numero 1 independente da posição que o número esteja.
Alguém tem alguma ideia de como fazer? Não sei se fui claro

Boa tarde Rcunha.
Segue uma alternativa:
grep -E -A4 '^\b1\b' perguntas
1-Pergunta numero 1?
a) opçao
b) opçao
c) opçao
d) opção

Use o "limitador de borda" " \b"
Ou o próprio "-" do texto
grep -E -A4 '^1-' perguntas 


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


Excelente! Obrigado

Rcunha, obrigado pela escolha da melhor resposta!
Somente a titulo de conhecimento,
Vc pode obter o mesmo resultado com o "sed " e tbem com o awk.
sed -n '/^12/,+4p' perguntas.txt
12 - Pergunta número 12?
a) Opção
b) Opção
c) Opção
d) Opção

sed -n '/^01/,/^d/p' perguntas.txt[b]
01 - Pergunta número 01?
a) Opção
b) Opção
c) Opção
d) Opção

[b]awk 'BEGIN{RS="\n\n";FS="\n";} NR==12 {print $0}' perguntas.txt
12 - Pergunta número 12?
a) Opção
b) Opção
c) Opção
d) Opção


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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts