Bash script - útfærsla á curl niðurhali útfrá textaskjali ?
Sent: Mán 17. Nóv 2014 00:34
Sælir strákar.
Ég hef verið að reyna læra eitthvað á bash/unix og ákvað að reyna búa til script til þess að hlaða niður eftir slóðum í textaskjali.
Síðan sem ég valdi heitir Piazza og með hjálp Link clipper sem er Chrome addon þá fæ ég skjal sem inniheldur linka sem redirecta á file
Gefum skjalinu nafnið piazza.txt og það lítur svona út:
https://piazza.com/class_profile/get_re ... 16m5i2a1e1
https://piazza.com/class_profile/get_re ... 16m5i2a1e1
....
....
Til þess að hlaða niður file:
curl -L "SLÓÐ" >> "nafnafile.pdf"
Til þess að sækja nafnið á file:
curl -v "SLÓÐ" | cut -d'?' -f1 | cut -d'/' -f7
Nú þarf ég að búa til eitthvað script sem nær í slóðina í textaskjali, keyrir sækja nafn skipunina.
Keyrir síðan hlaða niður skipunina með nafnið á filenum sem output. Og endur tekur ferlið síðan fyrir næstu línu.
Það næsta sem ég hef komist er að fá forritið til þess að ná í öll gögnin og skila þeim í einn file. En þar sem þetta er pdf þá virkar ekki >> til þess að búa bara til eitt stórt pdf skjal. Myndi annars virka fínt ef þetta væri .txt en það væri allveg ásættanleg niðurstaða. En þetta gerði ég allavegana þessari hérna skipun:
cat piazza.txt | awk '{print "curl -L " "\"" $1 "\""}' | bash >> gogn.pdf
Eftir keyrslu þá endar gogn.pdf sem seinasta skjal sem hlóðst niður.
Ég er algjör nýgræðingur í þessu svo ég gæti verið í einhverri algjörri vitleysu og ekki viss um að awk sé endilega rétta skipunin í þessa vinnslu.
En endilega vísið mér rétta átt með þetta!
/EDIT -
Get hlaðið niður öllum gögnunum með þessari skipun og gefið þeim heiti frá 1-(fjöldi):
cat piazza.txt | awk '{print "curl -L " "\"" $1 "\" " ">" NR }' | bash
En er enþá ekki viss hvernig ég næ að skipta út NR og setja í staðinn curl -v "SLÓÐ" | cut -d'?' -f1 | cut -d'/' -f7
Ég hef verið að reyna læra eitthvað á bash/unix og ákvað að reyna búa til script til þess að hlaða niður eftir slóðum í textaskjali.
Síðan sem ég valdi heitir Piazza og með hjálp Link clipper sem er Chrome addon þá fæ ég skjal sem inniheldur linka sem redirecta á file
Gefum skjalinu nafnið piazza.txt og það lítur svona út:
https://piazza.com/class_profile/get_re ... 16m5i2a1e1
https://piazza.com/class_profile/get_re ... 16m5i2a1e1
....
....
Til þess að hlaða niður file:
curl -L "SLÓÐ" >> "nafnafile.pdf"
Til þess að sækja nafnið á file:
curl -v "SLÓÐ" | cut -d'?' -f1 | cut -d'/' -f7
Nú þarf ég að búa til eitthvað script sem nær í slóðina í textaskjali, keyrir sækja nafn skipunina.
Keyrir síðan hlaða niður skipunina með nafnið á filenum sem output. Og endur tekur ferlið síðan fyrir næstu línu.
Það næsta sem ég hef komist er að fá forritið til þess að ná í öll gögnin og skila þeim í einn file. En þar sem þetta er pdf þá virkar ekki >> til þess að búa bara til eitt stórt pdf skjal. Myndi annars virka fínt ef þetta væri .txt en það væri allveg ásættanleg niðurstaða. En þetta gerði ég allavegana þessari hérna skipun:
cat piazza.txt | awk '{print "curl -L " "\"" $1 "\""}' | bash >> gogn.pdf
Eftir keyrslu þá endar gogn.pdf sem seinasta skjal sem hlóðst niður.
Ég er algjör nýgræðingur í þessu svo ég gæti verið í einhverri algjörri vitleysu og ekki viss um að awk sé endilega rétta skipunin í þessa vinnslu.
En endilega vísið mér rétta átt með þetta!
/EDIT -
Get hlaðið niður öllum gögnunum með þessari skipun og gefið þeim heiti frá 1-(fjöldi):
cat piazza.txt | awk '{print "curl -L " "\"" $1 "\" " ">" NR }' | bash
En er enþá ekki viss hvernig ég næ að skipta út NR og setja í staðinn curl -v "SLÓÐ" | cut -d'?' -f1 | cut -d'/' -f7