pubblicato Martedì 02 Maggio del 2006 alle 18:06.

Come ogni mattina è diventata oramai un abitudine ed ho bisogno di scrivere delle righe di bash per svegliarmi ben bene.

Questa mattina ho scritto del codice per tenere aggiornati i feed atom e rss all'interno dei quali dovrebbero restare solo gli articoli degli ultimi 6 giorni in cui ho postato. Sono 2 funzioni, una per atom e l'altra per rss. Ecco il codice: ult6gg_rss(){ local dates_riga="`sed -n "/<pubDate>.*<\/pubDate>/=" \ ../rss.xml`" # # prima riga local prima="`sed -n "/<pubDate>.*<\/pubDate>/=" \ ../rss.xml | sed -n 1p`" local data_di_rif=`sed -n "$prima"p ../rss.xml | \ sed "s/<[^>]*>//g"` local data_di_rif="${data_di_rif:0:20}" local data_riga="" local n_passaggi=0 local n_item=0 # # for data_riga in $dates_riga; do # # stop if [ "$n_passaggi" -eq 6 ]; then local inizio_riga="`sed -n "/<\/item>/=" \ ../rss.xml | sed -n "$n_item"p`" local tot_righe="`wc -l ../rss.xml | \ awk '{ print $1 }'`" local fine_riga=$(( tot_righe-2 )) # # sed "$inizio_riga","$fine_riga"d -i \ ../rss.xml break fi # # data_di_confr=`sed -n "$data_riga"p ../rss.xml | \ sed "s/<[^>]*>//g"` data_di_confr="${update:0:20}" # # if [ "$data_di_rif" != "$data_di_confr" ]; then data_di_rif="$data_di_confr" n_passaggi=$(( n_passaggi+1 )) fi # # numero item n_item=$(( n_item+1 )) done } ult6gg_atom(){ local dates_riga="`sed -n "/<published>.*<\/published>/=" \ ../atom.xml`" # # prima riga local prima="`sed -n "/<published>.*<\/published>/=" \ ../atom.xml | sed -n 1p`" local data_di_rif=`sed -n "$prima"p ../atom.xml | \ sed "s/<[^>]*>//g"` local data_di_rif="${data_di_rif:0:10}" local data_riga="" local n_passaggi=0 local n_entry=0 # # for data_riga in $dates_riga; do # # numero entry n_entry=$(( n_entry+1 )) # # data_di_confr=`sed -n "$data_riga"p ../atom.xml | \ sed "s/<[^>]*>//g"` data_di_confr="${update:0:10}" # # if [ "$data_di_rif" != "$data_di_confr" ]; then data_di_rif="$data_di_confr" n_passaggi=$(( n_passaggi+1 )) fi # # stop if [ "$n_passaggi" -eq 6 ]; then local inizio_riga="`sed -n "/<\/entry>/=" \ ../atom.xml | sed -n "$n_entry"p`" local tot_righe="`wc -l ../atom.xml | \ awk '{ print $1 }'`" local fine_riga=$(( tot_righe-2 )) # # sed "$inizio_riga","$fine_riga"d -i ../atom.xml break fi done }

[feed] Feed dei commenti [etichetta] Etichette: blog

powered by FreeFind
Il sito è una creazione di Maurizio... ed è pubblicato sotto una Licenza CC; esso non viene aggiornato
in maniera periodica, pertanto non può essere considerato un prodotto editoriale ai sensi della legge n. 62 del 7.03.2001.