Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Jo!
Dobre dwie godziny kombinuje jak z linku:
http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/pl/firefox-35.0.1.tar.bz2
Zrobić regex żeby wyciągało wersję pliku, która się zmienia co jakiś czas. Za każdym razem mi zwraca 404. Ma ktoś jakiś pomysł jak to obejść?
Offline
który fragment dokłądnie chcesz wyciągnąć? "35.0.1.tar.bz"?
Offline
1586
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:10:08)
Offline
Bez regex można tak:
pic@pic:~/Desktop$ echo "http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/pl/firefox-35.0.1.tar.bz2" | awk -F "-|.t" '{print $(NF-1)}' 35.0.1 pic@pic:~/Desktop$
Ostatnio edytowany przez prosze (2015-02-08 22:29:02)
Offline
Zakladając że lista plików jest sortowania domyślnie, czyli najwyższy numerek jest na samym końcu to można np tak:
#!/usr/bin/perl use strict; use LWP::Simple qw(get); use HTML::TagParser; my $baseuri = 'http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/pl/'; my $html = HTML::TagParser->new(get($baseuri)); my @linklist = $html->getElementsByTagName( "a" ); my @ffversions=(); foreach my $link (@linklist){ my $text = $link->innerText; push @ffversions, $1 if ($text =~ /firefox-(.*).tar.bz2/) } print "najnowszy FF: ".$ffversions[-1]."\nLink: ".$baseuri."firefox-".$ffversions[-1].".tar.bz2\n";
Znając perla (a wcale go nie znam ;)) pewnie da się to krócej zapisać, ale przy tej wersji masz w tablicy wszystkie dostępne wersje więc w razie "W" można wybrać inną. Na upartego można dorobić sortowanie, ale sortowanie przyda się tylko wtedy, gdy lista nie będzie zrobiona przez autoindex/directoryindex tylko przez jakiś plik index.hml z listą linków (co jest bez sensu ;p).
Offline
Z regex można tak:
pic@pic:~/Desktop$ echo "http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/pl/firefox-35.0.1.tar.bz2" | grep -E -o '\<[0-9.]+\>' 35.0.1 pic@pic:~/Desktop$
Offline
można jeszcze precyzyjniej:
$echo 'http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/pl/firefox-35.0.1.tar.bz2' | grep -P -o '(?<=firefox-)([.\pN]+)(?=\.tar)' 35.0.1
A z katalogu (zakładając że może istnieć więcej niż jedna wersja i czort wie jak one są posortowane):
lynx --nolist --dump http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/pl/ | grep -P -o '(?<=firefox-)([.\pN]+)(?=\.tar)' | sort -V | uniq | tail -n 1
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00017 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00229 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='13.59.36.203' WHERE u.id=1 |
0.00187 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.59.36.203', 1714659899) |
0.00057 | SELECT * FROM punbb_online WHERE logged<1714659599 |
0.00169 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27007 AND t.moved_to IS NULL |
0.00013 | SELECT search_for, replace_with FROM punbb_censoring |
0.00389 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27007 ORDER BY p.id LIMIT 0,25 |
0.00131 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27007 |
Total query time: 0.01196 s |