Grep encontrando números de telefone em arquivos

0

Como eu procuraria arquivos no diretório /etc (mas não em subdiretórios) que contêm um número de telefone padrão de longa distância dos Estados Unidos, escrito usando o padrão 1-###-###-#### , onde cada # é substituído por um numérico dígito. Colete os nomes dos arquivos de todos os arquivos no diretório /etc que contém tal padrão de números e coloque-os no arquivo ~/etcphone.txt , um nome de arquivo por linha, ordenados alfabeticamente, usando referências absolutas.

Isso é o que eu tenho até agora

egrep -l "1-[[:digit:]]{3}- " /etc/* 2>/dev/null 
    
por user72510 11.07.2014 / 22:01

4 respostas

3

$ egrep -l "\b1-[[:digit:]]{3}-[[:digit:]]{3}-[[:digit:]]{4}\b" \
    /etc/* 2>/dev/null | sort > ~/etcphone.txt

A sequência de escape \b corresponde a um limite de palavra. Isso impedirá se corresponder a algo como 1231-123-123-1234 .

    
por 11.07.2014 / 22:09
0

egrep -l "1(-[[:digit:]]{3}){3}[[:digit:]]" /etc/* 2>/dev/null

    
por 18.07.2014 / 22:47
0
find /etc | xargs -I{} grep -l ‘1-[0-9]\{3\}-[0-9]\{3\}-[0-9]\{4\}’ {} | sort -nr > ~/etcphone.txt
    
por 18.07.2014 / 23:28
-2
cat filename.txt | grep '^[789][0-9]{9}'

Este comando é aplicável apenas para números móveis indianos de 10 dígitos, começando com 7,8 ou 9.

    
por 10.04.2017 / 06:18