Grep находит телефонные номера в файлах

Как я могу искать файлы в каталоге /etc (но не в подкаталогах), которые содержат стандартный телефонный номер на расстоянии США, написанный с использованием шаблона 1-###-###-#### , где каждый # заменяется цифровой цифрой. Соберите имена файлов каждого файла в каталоге /etc который содержит такой шаблон чисел, и поместите их в файл ~/etcphone.txt , по одному имени файла в строке, отсортированный в алфавитном порядке, используя абсолютные ссылки.

Это то, что я до сих пор

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

  • Как искать определенные разделы файла, а затем извлекать только соответствующую информацию в этом разделе?
  • Использование awk и grep для результатов iftop
  • Стирание в stdin всех экземпляров регулярных выражений, определенных в файле
  • Понимание команды «grep» показывает разные результаты, чем ожидалось
  • grep: отображать имя файла один раз, затем отображать контекст с номерами строк
  • Фильтрация результатов grep с помощью путей, содержащих папку1 / folder2, и обрезание текущего пути папки из набора результатов
  • Как подсчитать количество вхождений слова в текстовый файл с помощью командной строки?
  • Как я могу назначить вывод команды переменной оболочки?
  • 4 Solutions collect form web for “Grep находит телефонные номера в файлах”

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

    Управляющая последовательность \b соответствует границе слова. Это предотвратит, если сопоставить что-то вроде 1231-123-123-1234 .

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

     find /etc | xargs -I{} grep -l '1-[0-9]\{3\}-[0-9]\{3\}-[0-9]\{4\}' {} | sort -nr > ~/etcphone.txt 
     cat filename.txt | grep '^[789][0-9]{9}' 

    Эта команда применима только для 10 цифр индийских мобильных номеров, начиная с 7,8 или 9.

    Linux и Unix - лучшая ОС в мире.