LINUX.ORG.RU
ФорумTalks

Выбор слов


0

0

У меня есть текстовый файл, большой. В нем хранится разный текст. Мне нужно вытянуть все слова содержащие символ '-' минус. На самом деле это номера телефонов. Может кто подскажет как это сделать при момощи awk или других средств?

Спасибо

★★

Ничего не идёт на ум с утра, кроме:

awk '{ for (k=NF; k >0; --k) { if ($k ~ "-") {print $k} } } ' phone.text

Rubystar ★★
()

f3ex@f3ex:~/tmp$ irb

irb(main):001:0> f = File.open('1.txt').read
=> "das sad asd -324 d dsf\n\n234-4324 -423 \n\n\nsdfsdf dsf sdf fds sdfff\n\n2310-s4s4 \n\n\nasd ad asd asd 23423-234\n"

irb(main):002:0> f.scan /((?:\w+?|)-\w*)/
=> [["-324"], ["234-4324"], ["-423"], ["2310-s4s4"], ["23423-234"]]


не?

f3ex ★★
()
Ответ на: комментарий от sdio

Или так, если именно слова с дефисами, а не только номера телефонов
grep -E -w -o '[[:alnum:]-]+' |grep -- '-'

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.