Компьютерный форум 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=240802)

masteralexey004 17-08-2012 20:47 1972043

grep - вытянуть телефоны
 
день добрый
кто может помочь?
есть текстовый файл, в нем куча объявлений и номера телефонов в формате: т. 8-999-999-99-99
как сделать так - чтобы все телефоны записались в отдельный файл?

vadblm 17-08-2012 21:00 1972055

grep -ohw 'т. 8-[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]' sourcefile > result
Ну и если нужно убрать "т. " то так:
grep -ohw 'т. 8-[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]' sourcefile | sed 's/т. //g' > result

masteralexey004 17-08-2012 23:47 1972144

пустой файл выходит почемуто :)

vadblm 17-08-2012 23:58 1972150

Значит, некорректно поставлена задача. Дайте что ли кусочек исходного файла.

masteralexey004 18-08-2012 09:49 1972231

Есть газета. В ней много текста - к примеру
продается машина москвич 2140. т. 8-000-000-00-00.
нужно вытянуть тел и записать его в файл

vadblm 18-08-2012 10:58 1972246

Короче, формулирую за вас: телефонный номер всегда начинается с символов "т. 8-", дальше идут 10 цифр, могущие быть в диапазоне от 0 до 9, сгруппированные в 4 группы по 3,3,2,2, разделённые символом "-". Я дал выражение для этой формулировки, но вы говорите ,что оно не срабатывает, значит формулировка неверна. Может между "т." и "8-" не один пробел, а два, или вообще нет, может исходный файл в другой кодировке (CP866, CP1251, KOI8-R), а в линуксе UTF-8. Дефисы бывают разные, может такой "-", а может такой "—", да и пробелов в типографском деле целый пучок, а с точки зрения системы они все разные символы. Они даже порой в разных кодировках по разному кодируются, например, неразрывный пробел (nbsp) в KOI8-R имеет код 0x9A, а в других — 0xA0.


Время: 00:40.

Время: 00:40.
© OSzone.net 2001-