GREP ( uma ocorrência só ) [RESOLVIDO]

1. GREP ( uma ocorrência só ) [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 06/04/2016 - 17:29h

Pessoas, tenho um arquivo com trocentas linhas ... preciso buscar um valor só q tenho duas ou mais linhas repetidas .. como fazer o grep retornar só a primeira ocorrencia ?

EDIT: acabei de postar e achei como fazer ... é só add o uniq !!!



  


2. MELHOR RESPOSTA

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 06/04/2016 - 18:41h

Mauriciodez escreveu:

Pessoas, tenho um arquivo com trocentas linhas ... preciso buscar um valor só q tenho duas ou mais linhas repetidas .. como fazer o grep retornar só a primeira ocorrencia ?

EDIT: acabei de postar e achei como fazer ... é só add o uniq !!!


$ grep -m1 -e PATTERN FILE

É mais rápido inclusive porque irá parar de procurar ao encontrar a primeira ocorrência.

3. Re: GREP ( uma ocorrência só ) [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 07/04/2016 - 11:00h

textmode escreveu:
...$ grep -m1 -e PATTERN FILE
.


Massa ... mas me diz uma coisa ... não encontrei referencia para -m nos parametros do GREP .. vc poderia exemplificar para mim ?? e o que seria PATTERN FILE ?




4. Re: GREP ( uma ocorrência só ) [RESOLVIDO]

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 07/04/2016 - 11:41h

Mauriciodez escreveu:

textmode escreveu:
...$ grep -m1 -e PATTERN FILE
.


Massa ... mas me diz uma coisa ... não encontrei referencia para -m nos parametros do GREP .. vc poderia exemplificar para mim ?? e o que seria PATTERN FILE ?



Por usar Debian, eu assumi que você usava o GNU Grep e passei o exemplo usando ele. Mas talvez você esteja utilizando uma versão mais tradicional do grep e esta opção não exista. Se possível, verifique a versão/origem do seu grep.

Vamos lá. O trecho relevante do manual é o seguinte:

-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines. If the input is
standard input from a regular file, and NUM matching lines are
output, grep ensures that the standard input is positioned to just
after the last matching line before exiting, regardless of the
presence of trailing context lines. This enables a calling process
to resume a search. When grep stops after NUM matching lines, it
outputs any trailing context lines. When the -c or --count option is
also used, grep does not output a count greater than NUM.
When the -v or --invert-match option is also used, grep stops after
outputting NUM non-matching lines.


Você pode ajustar para o número de ocorrência desejadas.

PATTERN FILE vem lá da sinopse:


grep [OPTIONS] PATTERN [FILE...]


Onde:

- PATTERN: refere-se ao que você deseja procurar.
- FILE: refere-se ao arquivo onde a busca será realizada ou a entrada padrão.

Por exemplo, se eu quiser procurar se na saída do meu grep existe a opção '-m', posso fazer:

$ grep --help| grep -- '^ *-m'



5. Re: GREP ( uma ocorrência só ) [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 07/04/2016 - 11:51h

...


Achei o parametro aqui ( não tinha visto ele antes .. kkkkkkkk )

${exec cat /proc/cpuinfo | grep "model name" | cut -c25-34  | uniq} 


nesse caso aí de cima então o comando ficaria assim ?

${exec cat /proc/cpuinfo | grep -m1 "model name" | cut -c25-34 } 







6. Re: GREP ( uma ocorrência só ) [RESOLVIDO]

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 07/04/2016 - 12:40h

Mauriciodez escreveu:

...


Achei o parametro aqui ( não tinha visto ele antes .. kkkkkkkk )

${exec cat /proc/cpuinfo | grep "model name" | cut -c25-34  | uniq} 


nesse caso aí de cima então o comando ficaria assim ?

${exec cat /proc/cpuinfo | grep -m1 "model name" | cut -c25-34 } 




Apenas por curiosidade, na minha máquina, o seu comando imprime:


re(TM) i5-


Aqui eu vou assumir que o seu comando é exatamente o que você precisa, então:

Remova o cat, só atrapalha no seu caso:

grep -m1 "model name" /proc/cpuinfo | cut -c25-34 


Você poderia ainda utilizar ou sed ou awk e remover o pipe. Normalmente implica em mais performance, mas muitas vezes implica também em menor legibilidade, então deixemos como está.




7. Re: GREP ( uma ocorrência só ) [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 07/04/2016 - 13:36h

...


Tranquilo velho ... funcionou aqui ... valeu pela idéia ... !!!








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts