Hello mindenki!
Sajnos nem nagyon értem még a sed logikáját, de igyekszem. Ezt pld. magam okumláltam össze.
Kérdés van-e egyszerűbb megoldás?
Leszedem a szerverről a fájllistát.
wget --no-remove-listing http://repo.vivaldi.com/archive/rpm/x86_64
Ez sajnos html fájl.
Akkor dumpoljunk.
lynx --dump index.html > list.txt
Majd keressük meg a legfrissebb verziót.
cat list.txt | sed -n '/file:/,/$/p' | sed -n '/snapshot-/,/./p' | awk -vFS='-' '{print $3}' | sort -rV | head -n1
Nekem így is megfelel, de a tanulás végett kérdés van-e egyszerűbb shell megoldás. Egyelőre a perlt még hanyagoljuk.
S ha igen, kérnék hozzá magyarázatot is hogy meg is értsem.
Hozzászólások
Segítenék, de kéne pár infó, mivel a linked nem működik (ERR_CONNECTION_TIMED_OUT):
1. Mi a cél? (Miből mi legyen? Formátum példa!)
2. Hová akarod felhasználni a kinyert adatot? (változóba, csak kiírva, adatbázisba megy, stb. - kicsit más a szigorúság az egyes eseteknél)
UPDATE: https az a http, azért nem megy... Na, mindjárt nézem.
UPDATE2:
egy soros változat, ami kiírja a legfrissebb verziót:
http://pastebin.com/8CyFwCaa
Függőségek: curl, sed, grep, cut, sort, head
Mondtam már, hogy utálom a hup formázási bénázásait?
--
Coding for fun. ;)
Köszi. Ez nem semmi. Bárcsak érteném is mi mit csinál. (A seden belül)
Érdekel engem ez a Vivaldi de sajnos a saját scriptjük annyiban hibás, hogy elfelejtették létrehozni a szerverükön az urpmi -nek szükséges metaadat fájlt. Nevezetesen a media_info mappában lévő hdlist.cz fájlt.
S ezt távolról nem tudom megoldani, mivel nincs írási jogom a szerverre. Maximum mindent letölthetnék, és a saját gépemen elkészíthetném, utána meg elküldhetném nekik. No de ez csak a jelenlegi helyzetre vonatkozna, s abban a pillanatban amint feltesznek egy új kiadást, kezdhetném elölről.
Az urpmi meg nem dolgozik a yum féle repomd.xml fájlból.
Igazából nekik csak annyit kéne csinálniuk hogy "genhdlist2 *.rpm" Ekkor elkészül a szerverükön az, ami miatt nem működik jelenleg a frissítés.
Ezt már bejelentettem bugnak, de hanyagolják. :(
Így már a kapott verziószámot össze tudom vetni a feltelepítettel, majd egy if then páros megoldja az ellenőrzést s vagy letölti az új változatot, vagy nem tesz semmit mivel nincs új változat.
Közben kísérleteztem, aztán ezt hoztam össze.
curl -ks https://repo.vivaldi.com/archive/rpm/x86_64/ | sed -n '/snapshot/,/$/p' | cut -d "-" -f3 | sort -nr | head -n1
Van ugyan egy apró szépséghibája a kiírásnak, de a végeredmény szempontjából nincs jelentősége. S ezt legalább értem. :)
--DUPE--
--
Coding for fun. ;)
Írtam neked egy komplett frissítő szkriptet, ami frissíti, ha van új, viszont a repo.vivaldi.com cacert-jét meg kell etetned a rendszerrel.
Itt a script: http://pastebin.com/YdY4ztVN
--
Coding for fun. ;)
Észrevételek: egy sed scriptben lehet több sed utasítás, pontosvesszőkkel szeparálva írhatod őket egymás után.
Ha pipe-olni kell mindenféle sed, grep, cut parancsokat, egyszerűbb egyetlen awk scripttel megoldani mindent.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
Pontosan.
Ízlés és szándék kérdése úgy átszabni, hogy a csomagolás számát eldugja, mint fent.
A Vivaldin már régen túl vagyok. Frankón működik.
Viszont miután a disztróm csak a Firefox-ESR-t adja, így nekem kell mindig levadásznom az utolsó kiadást.
Volt is egy frankó scriptem rá, de a Mozilla megváltoztatta a dolgokat, és most gond van.
Egyelőre itt tartok:
curl -ks http://download.cdn.mozilla.net/pub/firefox/releases/ | sed -e 's/<[^>]*[>]//g; s/\//g; /^\s*$/d; s/.$//' | head -n -12 | sort -V
Sajnos megint belekerült a végére pár szöveg. Ebből bányásznám ki a legfrissebb kiadást.
Csak az egész számok az érdekesek. Ez béta:41.0b9, ez nem tudom mi:41.0.2-funnelcake53
A további szűrést hogy oldhatnám meg?
Melyik disztró? Nincs hozzá valami friss-ropogós Firefox-ot tartalmazó repó?
Nem tudom mire gondoltál pontosan.