The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"bash и разбор строки"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Perl)
Изначальное сообщение [ Отслеживать ]

"bash и разбор строки"  +/
Сообщение от soccer on 11-Май-10, 21:38 
Есть такая строка.
<div class="feedurl" style="word-wrap: break-word; width:550px;">http://trak.in/feed</div></td></tr><tr&... </td></tr>

Какв bash скрипте извлечь из данной строки url?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "bash и разбор строки"  +/
Сообщение от начинающиий on 11-Май-10, 22:22 
>Есть такая строка.
><div class="feedurl" style="word-wrap: break-word; width:550px;">http://trak.in/feed</div></td></tr><tr&... </td></tr>
>
>Какв bash скрипте извлечь из данной строки url?

Например, так
sed "s/<div [^>]*>\([^<]*\)<\/div>.*/\1/"
А вообще, лучше специальную библиотеку для xml использовать на перле или питоне.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "bash и разбор строки"  +/
Сообщение от Pahanivo (ok) on 12-Май-10, 07:34 
>>Есть такая строка.
>><div class="feedurl" style="word-wrap: break-word; width:550px;">http://trak.in/feed</div></td></tr><tr&... </td></tr>
>>
>>Какв bash скрипте извлечь из данной строки url?
>
>Например, так
>sed "s/<div [^>]*>\([^<]*\)<\/div>.*/\1/"
>А вообще, лучше специальную библиотеку для xml использовать на перле или питоне.
>

html != xml (вроде)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "bash и разбор строки"  +/
Сообщение от начинающиий on 13-Май-10, 18:52 
>>А вообще, лучше специальную библиотеку для xml использовать на перле или питоне.
>>
>
>html != xml (вроде)

Для объектных библиотек !=,  а  для линейных почти что по барабану.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "bash и разбор строки"  +/
Сообщение от Andrey Mitrofanov on 12-Май-10, 17:24 
|egrep -io "<div [^>]*class=\"feedurl\"[^>]*>[^<]+</div>" |egrep -o ">[^<]+<" |egrep -o "[^<>]+"

|awk 'match($0,"<div [^>]*class=\"feedurl\"[^>]*>([^<]+)</div>",aa){print aa[1]}'

XX="${IN#*>http://}"; XX="${XX%</div>*}"; OUT="http://$XX"

Как-то так...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "bash и разбор строки"  +/
Сообщение от JohnProfic on 12-Май-10, 21:34 
>Есть такая строка.
><div class="feedurl" style="word-wrap: break-word; width:550px;">http://trak.in/feed</div></td></tr><tr&... </td></tr>
>
>Какв bash скрипте извлечь из данной строки url?

А такое считается башем? :)
$ echo "<div class="feedurl" style="word-wrap: break-word; width:550px;">http://trak.in/feed</div></td></tr><tr&... </td></tr>" | php -r "echo trim(fgetss(STDIN));"
http://trak.in/feed
$ _

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "bash и разбор строки"  +/
Сообщение от Andrey Mitrofanov on 12-Май-10, 21:46 
>А такое считается башем? :)
> | php -r "echo trim(fgetss(STDIN));"

Мастер! :)))

> |sed 's/<[^>]\+>//g'

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "bash и разбор строки"  +/
Сообщение от pavlinux (ok) on 13-Май-10, 02:43 
>>А такое считается башем? :)
>> | php -r "echo trim(fgetss(STDIN));"
>
>Мастер! :)))
>
>> |sed 's/<[^>]\+>//g'

1. ... | cut -d '>' -f2,2 | cut -d '<' -f1
2. ... | lynx --stdin -dump
3. ... | urlview
4. ... | sed -e 's/<[^>]\+[^<]//g'
5. ... | awk 'BEGIN { FS = ">"; RS = "<" }; {print $2}'

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "bash и разбор строки"  +/
Сообщение от Sphynkx (ok) on 27-Окт-10, 03:25 

perl -e '$a="<div class=\"feedurl\" style=\"word-wrap: break-word; width:550px;\">http://trak.in/feed</div></td></tr><tr&... </td></tr>"; @a=split("[><]",$a); foreach (@a) {print $_,"\n" if /http/;}'
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "bash и разбор строки"  +/
Сообщение от Sugar (ok) on 27-Окт-10, 14:33 
> perl -e '$a="<div class=\"feedurl\" style=\"word-wrap: break-word; width:550px;\">http://trak.in/feed</div></td></tr><tr&...
> </td></tr>"; @a=split("[><]",$a); foreach (@a) {print $_,"\n" if /http/;}'

или так:
| perl -le '$a = <>; $a =~ />(\S+)<\/div/; print $1'

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "bash и разбор строки"  +/
Сообщение от Archer Godson on 06-Июл-12, 16:01 
>> perl -e '$a="<div class=\"feedurl\" style=\"word-wrap: break-word; width:550px;\">http://trak.in/feed</div></td></tr><tr&...
>> </td></tr>"; @a=split("[><]",$a); foreach (@a) {print $_,"\n" if /http/;}'
> или так:
> | perl -le '$a = <>; $a =~ />(\S+)<\/div/; print $1'

я извлёк сами гиперссылки так:
| grep "http://" | sed 's/^.*http/http/g' | grep -o "http://[a-z\.]*"

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "bash и разбор строки"  +/
Сообщение от Archer Godson on 06-Июл-12, 16:05 
>>> perl -e '$a="<div class=\"feedurl\" style=\"word-wrap: break-word; width:550px;\">http://trak.in/feed</div></td></tr><tr&...
>>> </td></tr>"; @a=split("[><]",$a); foreach (@a) {print $_,"\n" if /http/;}'
>> или так:
>> | perl -le '$a = <>; $a =~ />(\S+)<\/div/; print $1'
> я извлёк сами гиперссылки так:
> | grep "http://" | sed 's/^.*http/http/g' | grep -o "http://[a-z\.]*"

даже так хватит:
| grep -o "http://[a-z\.]*"
чёт я ступил ))
наверное ещё и русские домены есть смысл искать, да и написаны они могут быть  большими буквами, тогда:
| grep -o "http://[a-zA-Zа-яА-Я\.]*"

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру