jueves, 31 de enero de 2013

Obter as últimas entradas dun RSS [Twitcode XXIV][Bash]

Hoxe Twitcode, ímos ver como ler as últimas entradas dun RSS con bash:
wget -O- -o/dev/null "$url"|grep -Po '<title>.*?</title>'|sed -r 's/^<title>(.*)<\/title>$/\1/g'

O funcionamento é sinxelo, `wget -O-` lee o contido dunha dirección e amosa o resultado pola saída estándar.

Logo haberá que ler só a parte do título, isto pódese facer cunha expresión regular
grep -Po '<title>.*?</title>'
A expresión dí o seguinte, “búsca o texto `<title>`, despois calquer número de repeticións dun carácter calquera, ata atopar un `</title>`”.

O derradeiro paso e eliminar as etiquetas do título
sed -r 's/^<title>(.*)<\/title>$/\1/g'
De novo expresión regular, tradúcese coma “no caso de que a cadea comece con `<title>` e acabe con `</title>`, reempraza todo pola parte do medio”.

E íso é todo, un exemplo do resultado sería este:
$ wget -O- -o/dev/null "http://hackliza.blogspot.com/feeds/posts/default?alt=rss"|grep -Po '<title>.*?</title>'|sed -r 's/^<title>(.*)<\/title>$/\1/g'
Hackliza!
Obter as últimas entradas dun RSS [Twitcode XIV][Bash]
Antena wireless caseira
GSIC MINDS (Xornadas Seguridade Informática n'A Coruña)
Forzando un peche dun socket dende fora da aplicación [Unix]
Listar as liñas de texto escritas nun proxecto [Twitcode XXIII][Bash]
Administración, permisos en GNU/Linux [II][Seguridade] 
Sacar a lista das últimas subas públicas a pastebin [Twitcode XXII][Bash]
Probando IPv6 dende unha rede "clásica"
Feliz aninovo!
Fedora non recoñece dispositivo android (Solución para nexus 7) [Android][Fedora]
Administración, permisos en GNU/Linux [Básico][Seguridade]
Cifrando/Descifrando con translate [Twitcode XXI][Bash]
Parsear os parámetros dunha petición HTTP [Twitcode XX][Python]
Amosando a traza dun programa cando da `Segmentation fault' (2ª parte) [C][Gnu/Linux]
"Ubuntu ten software espía" Richard Stallman dixit
Primeiro cuatrimestre de Hackliza! en números
Monitorizar os logs en GNU/Linux [Twitcode XIX][Bash]
Amosando a traza dun programa cando da `Segmentation fault' [C][Gnu/Linux] 
Amosar os servizos activos [Twitcode XVIII][Bash]
Coñecendo as sinais de Unix [GNU/Linux]
Amañando erros gracias aos logs [GNU/Linux]
Obter os métodos permitidos nun servidor HTTP [Twitcode XVII][Bash] 
Buscando a orixe do erro dun programa [C]
Listar quenes contribúen nun repositorio GIT segundo o número de commits [Twitcode XVI][Bash]
Curvas Bézier [python]

No hay comentarios:

Publicar un comentario