Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   grep регулярные выражения (http://forum.oszone.net/showthread.php?t=141275)

dogidogi 28-05-2009 13:56 1129462

grep регулярные выражения
 
есть txt файл, формата:
8(919)234543
8(923)234234
84742343245

надо с помощью grep -e
вывести все телефоны по шаблону : grep -e "(8\([0-9]{3})[0-9]{7}\))$"
grep ничего не выдаете, помогите найти ошибку

BuGfiX 28-05-2009 15:02 1129507

egrep '^8\([0-9]{3}\)[0-9]{6}$' file.txt
после скобок у Вас 6 знаков, а не 7

dogidogi 28-05-2009 15:04 1129513

проходит без ошибок, но результат не выводит (

BuGfiX 28-05-2009 16:08 1129568

На том примере что Вы привели работает:
Код:

[bugfix@darkstar ~]$ cat file.txt
8(919)234543
8(923)234234
84742343245
[bugfix@darkstar ~]$ egrep '^8\([0-9]{3}\)[0-9]{6}$' file.txt
8(919)234543
8(923)234234
[bugfix@darkstar ~]$

Укажите точно что нужно выбрать, возможно пример неверный ?

dogidogi 28-05-2009 17:29 1129625

marat@ubuntu:~$ cat 1.txt
8(910)3591462 Alexey
8(919)4567842 Marat
84742453672 Avdotiy
46-09-18
marat@ubuntu:~$ egrep '^8\([0-9]{3}\)[0-9]{7}$' 1.txt
marat@ubuntu:~$

BuGfiX 28-05-2009 18:17 1129647

А что нужно выбирать из этого примера то? все номера телефонов ?
Ну а тот греп что я предлагал не работает из-за того что в предыдущем примере конец строки все-таки находился в другом месте.

dogidogi 28-05-2009 21:17 1129759

надо выбрать номера сотовых телефонов со скобочками, ну и соответственно кому они принадлежат, должно получиться :
8(910)3591462 Alexey
8(919)4567842 Marat

BuGfiX 28-05-2009 22:51 1129830

Код:

egrep '^8\([0-9]{3}\)[0-9]{6}.*' file.txt

dogidogi 28-05-2009 22:54 1129834

все огромное спасибо, так вроде заработала, а как теперь вывести и именами людей?


Время: 15:26.

Время: 15:26.
© OSzone.net 2001-