используйте команду "grep", чтобы найти текстовые файлы, содержащие номер телефона - PullRequest
3 голосов
/ 28 февраля 2011

используйте команду "grep", чтобы найти текстовые файлы, содержащие телефонный номер.

формат номера телефона может быть:

"***-*******"
"**********"
"*** *******"
"***-***-****"

Как это написать?

Ответы [ 2 ]

6 голосов
/ 28 февраля 2011

- это 3 цифры (\ d {3}), пробел или тире [\ s-], 3 цифры (\ d {3}), пробел или тире [\ s-], 4 цифры (\ d {4) }).

grep '\d{3}[\s\-]{0,1}\d{3}[\s\-]{0,1}\d{4}' infile.txt

Редактировать @Mark and Jed - хороший совет - сделал обновления на основе рекомендаций

2 голосов
/ 28 февраля 2011
$ cat file
test 1234567890 test
blah 123-4567890 junk junk 546-3345622 junk
blah blah 123 4575463 sdfsljads 123_456_4356 end
123--4567890

$ grep -Po '\d{3}[\s\-_]?\d{3}[\s\-_]?\d{4}'  file
1234567890
123-4567890
546-3345622
123 4575463
123_456_4356

$ ruby -ne 'puts $_.scan(/\d{3}[\s\-_]?\d{3}[\s\-_]?\d{4}/)' file
1234567890
123-4567890
546-3345622
123 4575463
123_456_4356
...