Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Vytahnuti URL z 6MB textoveho souboru

Ahoj, potreboval bych vytahnout asi 100 URL ze (pro me:) zmateneho 6MB velkeho souboru. Ta URL, ktera potrebuji vytahnout vypadaji presne takhle: {"entries":[{"url":"asdf.html". Myslim, ze presne tahle situace by mohla byt v nejakych programatorskych tutorialech, takze pokud nejaky takovy znate, tak mi prosim dejte odkaz. Ikdyz jsem programovani videl jenom z rychliku, tak tohle bych mozna zvladnul s trochou usili. Pokud by nekdo byl tak hodny a dal mi rovnou zdrojovy kod, treba v javascriptu, php nebo klidne v necem jinem tak bych se taky nezlobil :-)

Předmět Autor Datum
Na tohle existují i programy. urlextractor
karel 21.10.2013 17:58
karel
Diky, snad s tim pujde vytahnout jenom ty odkazy, kterym predchazi {"entries":[{"url":, protoze jsou…
husky123 21.10.2013 18:02
husky123
Tak ten program je bohuzel pro MAC, zkusim najit neco podobneho.
husky123 21.10.2013 18:04
husky123
Tos mu udělal schválně, žejo, Karle :-D
mia 21.10.2013 18:47
mia
posli subor sem
wam_Spider007 21.10.2013 18:27
wam_Spider007
Diky za ochotu, ale nemuzu to poslat, protoze v tom 6MB velkem souboru z firefoxiho profilu je urcit…
husky123 21.10.2013 18:56
husky123
o ktory subor presne sa jedna? (nazov & pripona?) Trebars na FF existuju konvertory.
MM.. 21.10.2013 19:05
MM..
Alebo nadrb to predsa do profilu a daj si vo FF vyexportovat zalozky do html? Ak sa jedna o zalozky.
MM.. 21.10.2013 19:06
MM..
Těžko ti pošle program na něco, když ani nevím jakou to něco má strukturu. A těžko to udělá, když si…
ERASER 21.10.2013 19:07
ERASER
Ten soubor je sessionstore.js. Skript, ktery potrebuju by se dal popsat takhle: 1/Najdi v souboru…
husky123 21.10.2013 19:33
husky123
http://www.gfi.com/blog/windows-powershell-extract ing-strings-using-regular-expressions/ a celkem…
MKc 21.10.2013 19:13
MKc
Diky, zkusim se s tim poprat.
husky123 21.10.2013 19:36
husky123
Tak uz to mam. Pouzil jsem tenhle regex: $regex = "(\{`"entries`":\[\{`"url`":`"https?://(.*?)`".`")…
husky123 21.10.2013 22:25
husky123
Jeste pro pripad, ze by se to nekomu pozdeji nekomu hodilo, tak jsem pouzil tutorialy na tehle stran… poslední
husky123 21.10.2013 23:00
husky123
máš 2 možnosti: -pravděpodobně jde o soubor JSON a ty data jsou hiaerchicky strukturovaná. takže je…
mnua.al 21.10.2013 19:45
mnua.al

Ten soubor je sessionstore.js.

Skript, ktery potrebuju by se dal popsat takhle:

1/Najdi v souboru sessionstore.js tento text: {"entries":[{"url":
2/Uloz URL, ktere za timto textem v uvozovkach nasleduje na novy radek do souboru asdf.txt
(3/)Neukladej zadne URL, kteremu ten text z bodu 1/ nepredchazi

http://www.gfi.com/blog/windows-powershell-extract ing-strings-using-regular-expressions/

a celkem to i funguje

$input_path = '.\example.txt'
$regex = '([a-zA-Z]{3,})://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)*?'
Select-String -Path $input_path -Pattern $regex -AllMatches |%{$_.matches} |%{$_.value}

www.adresa.cz
www.adresab.de

.. bude to chtít upravit REGEX aby to vzalo kompletní URL .. a ne jen domenu :)

Edit:

$regex = "(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+) )([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#] )?" by mělo stačit

máš 2 možnosti:
-pravděpodobně jde o soubor JSON a ty data jsou hiaerchicky strukturovaná. takže je stačí projít nějakým filtrem (něco jako xpath pro xml) nebo cyklem v nouzi
- nebo regulerní výrazem, je to uplně trivivální (až na vymyšlení správného regexu). příkaz:
grep -ioP '(?<=url":")[^"]+(?=")' soubor

Zpět do poradny Odpovědět na původní otázku Nahoru