LINUX.ORG.RU

поиск ссылок в текстовом файле


0

2

Есть файл, в каждой строчке которого имеется url-ссылка, как до так и после ссылки возможен какой-нибудь текст, ссылка ограничена пробелами, возможен вариант, когда строчка равна url-ссылке (тогда без пробелов). Вопрос: как проще выдрать ссылки из файла, либо вообще очистить файл от шелухи, оставив одни ссылки?

┌┤~├──────────────────────────────────────────────────────────┤gotf@persephone├─
└─> cat links 
http://ololo.org/fail
string
 another string
 http://link.com 
word http://anothersite.ru some more words
┌┤~├──────────────────────────────────────────────────────────┤gotf@persephone├─
└─> cat links | grep -o "\<http://[a-z0-9./-]*\>"
http://ololo.org/fail
http://link.com
http://anothersite.ru

Наверно, это очень криво.

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

УМВР

┌┤~├──────────────────────────────────────────────────────────┤gotf@persephone├─
└─> bash --version
GNU bash, version 3.2.39(1)-release (x86_64-pc-linux-gnu)
┌┤~├──────────────────────────────────────────────────────────┤gotf@persephone├─
└─> grep --version 
GNU grep 2.5.3
GotF ★★★★★ ()

Я пользуюсь таким способом. Какие в нём недостатки?

sed -rn 's/.*(((https?|ftp):\/\/[^'\'' <>"]+|(www|web|w3).[-a-z0-9.]+)[^'\'' .,;<>"):]).*/\1/p'

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