miércoles, 16 de enero de 2013

Sacar a lista das últimas subas públicas a pastebin [Twitcode XXII][Bash]

Pastebin, para quen non o coñeza é un sitio que permite subir arquivos de texto, útil por exemplo se queremos compartir un trozo de código que non acaba de funcionar cunha canle IRC, así que resulta que pode ter algúns arquivos curiosos, así podemos sacar a lista dos máis recentes:

curl "http://pastebin.com/archive"|sed 's/<\/td>/\n/g'|grep '<td>.*/i/t.gif'|sed -r 's/.*<a href="([^"]*)">([^<]*).*/\2: pastebin.com\1/g'

Pódese modificar a URL para sacar por exemplo so un tipo de arquivos (aínda que xa non cabe nun twit):
curl "http://pastebin.com/archive/python"|sed 's/<\/td>/\n/g'|grep '<td>.*/i/t.gif'|sed -r 's/.*<a href="([^"]*)">([^<]*).*/\2: pastebin.com\1/g'




Entón... como funciona?

`curl` descarga a web:
curl "http://pastebin.com/archive"

`sed` divide a táboa por celas para poder manexalas mellor:
sed 's/<\/td>/\n/g'

`grep` toma as celas que nos interesan (identificadas polo /i/t.gif):
grep '<td>.*/i/t.gif'

E para rematar `sed` toma os valores das celas, busca a url e o nome do post e dalle o formato:
sed -r 's/.*<a href="([^"]*)">([^<]*).*/\2: pastebin.com\1/g'

Pode non ser moi útil pero ilustra a potencia dun par de expresións regulares :)

Saúdos

No hay comentarios:

Publicar un comentario