Sida 1 av 1
Snygga till skript
Postat: 14 okt 2009, 18:04
av Rasmus
Jag har ett skript som jag skulle vilja snygga till, speciellt sed delen för att slippa spara en tempfil.
Kod: Markera allt
#!/bin/bash
for i in `seq 1 500`
do
wget http://xkcd.com/$i/
namn=`grep http://imgs.xkcd.com/comics/ index.html | head -1 | cut -d\" -f2`
wget $namn
echo $namn > a
namn=`sed 's|http:\/\/imgs.xkcd.com\/comics\/||g' a`
mv $namn "$i - $namn"
rm index.html
done
rm a
Det skriptet gör är att hämta serie 1 - 500 hos xkcd och döpa om dem till nummer - namn.
Men som sagt, hur snyggar man till detta på ett bra sätt?
Orginalskriptet hittar ni här:
http://snippets.dzone.com/posts/show/4658
Re: Snygga till skript
Postat: 14 okt 2009, 20:26
av gusse02
Byta namn på filen på ett smidigt sätt kan du göra med
.
Kod: Markera allt
$ prename "s|http:\/\/imgs.xkcd.com\/comics\/|$i - |g" $namn
typ ...
Re: Snygga till skript
Postat: 14 okt 2009, 20:33
av Rasmus
Problemet är att $namn inehåller tex.
http://imgs.xkcd.com/comics/static.png så jag måste först kapa
http://imgs.xkcd.com/comics/ från $name innen jag "vet" vad filen heter. Eller missförstod jag nu?
Re: Snygga till skript
Postat: 14 okt 2009, 21:38
av gusse02
basename är väl bra annars för att lista ut filnamnet
Kod: Markera allt
$ basename http://imgs.xkcd.com/comics/static.png
static.png
Re: Snygga till skript
Postat: 14 okt 2009, 21:56
av Rasmus
Tackar! Var vad jag letade efter.
Re: Snygga till skript
Postat: 14 okt 2009, 22:11
av Konservburk
Rasmus skrev:Jag har ett skript som jag skulle vilja snygga till, speciellt sed delen för att slippa spara en tempfil.
Om du vill slippa tempfiler så är det bra att sätta sig in i hur pipelines fungerar. I det här fallet kan du skippa det mesta, både tempfiler och mellanlagringsvariabler (och till och med själva loopen) genom att köra alltihop genom en enda pipeline:
Kod: Markera allt
seq 500 |
xargs -i wget -qO- "http://xkcd.com/{}" |
sed -n '\|/*</h3>|{s|||;s|.*/||p}' |
xargs -n2 sh -c 'wget -O "$0 - $1" "http://imgs.xkcd.com/comics/$1"'
Re: Snygga till skript
Postat: 15 okt 2009, 10:05
av gusse02
Det där var riktigt snyggt!
Re: Snygga till skript
Postat: 16 okt 2009, 15:40
av Rasmus
Jag ser att jag behöver kolla mer på xargs, tackar!