Procura por número no texto [fechado]

0

Eu tenho um arquivo de texto e quero digitalizar esse arquivo de texto para um número específico. Vamos dizer que o arquivo de texto é:

asdg32dasdgdsa
dsagdssa11
adad 12345
dsaga

Agora quero procurar um número com o comprimento de 5 e imprimi-lo ( 12345 ).

Como posso fazer isso no Linux?

    
por inq93 27.10.2015 / 17:04

3 respostas

7

Você está procurando o comando grep :

DESCRIPTION
   grep searches the named input FILEs for lines containing a match to the
   given PATTERN.  If no files are specified, or if the file “-” is given,
   grep  searches  standard  input.   By default, grep prints the matching
   lines.

Então, para encontrar o número 12345 , execute:

$ grep 12345 file
adad 12345

Isso imprimirá todas as linhas correspondentes a 12345 . Para imprimir apenas a parte correspondente da linha, use o sinalizador -o :

$ grep -o 12345 file
12345

Para encontrar qualquer trecho de dígitos consecutivos de comprimento 5, você pode usar um dos seguintes:

$ grep -o '[0-9][0-9][0-9][0-9][0-9]' file
12345
$ grep -o '[0-9]\{5\}' file
12345
$ grep -Eo '[0-9]{5}' file 
12345
$ grep -Po '\d{5}' file 
12345

Para fazer o mesmo, mas ignorar os números com mais de 5 dígitos, use:

$ grep -Po '[^\d]\K[0-9]{5}[^\d]*' file
12345
    
por 27.10.2015 / 17:09
2
grep -o '[0-9][0-9][0-9][0-9][0-9]' file
    
por 27.10.2015 / 17:07
1

POSIXly:

tr -cs '[:digit:]' '[\n*]' <file | grep '^.\{5\}$'
    
por 27.10.2015 / 17:07

Tags