grep - вытянуть телефоны
день добрый
кто может помочь? есть текстовый файл, в нем куча объявлений и номера телефонов в формате: т. 8-999-999-99-99 как сделать так - чтобы все телефоны записались в отдельный файл? |
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 |
пустой файл выходит почемуто :)
|
Значит, некорректно поставлена задача. Дайте что ли кусочек исходного файла.
|
Есть газета. В ней много текста - к примеру
продается машина москвич 2140. т. 8-000-000-00-00. нужно вытянуть тел и записать его в файл |
Короче, формулирую за вас: телефонный номер всегда начинается с символов "т. 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-