(angelegt, noch nicht fertig, aber es gibt Pizza) |
(+kat) |
||
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Auf dieser Seite kann sich jeder verewigen, der auf der GPN etwas programmiert hat. | = Code und Basteleien = | ||
Auf dieser Seite kann sich jeder verewigen, der auf der GPN etwas programmiert oder gebaut hat. | |||
== [[user:kamikaze]] == | == [[user:kamikaze]] == | ||
=== Objektorientierte Shell-Skripte === | |||
Ich habe ein kleines Framework für objektorientierte Shell-Skripte geschrieben. Das wird irgendwann in http://bsdadminscripts.sf.net/ genutzt. | Ich habe ein kleines Framework für objektorientierte Shell-Skripte geschrieben. Das wird irgendwann in http://bsdadminscripts.sf.net/ genutzt. | ||
Den Code habe ich mal vorläufig | Den Code habe ich mal vorläufig auf BSDForen.de veröffentlicht: http://www.bsdforen.de/showthread.php?t=23245 | ||
=== Code-Kommentare === | |||
Im Rahmen einer kleinen Unterhaltung über Code-Kommentare, habe ich dieses kleine Skript hier produziert, das ausspuckt wir groß der Kommentaranteil in einem Shell-Skript ist. Das ganze funktioniert unter FreeBSD RELENG_7. Kann sein, das man mit GNU ein paar Parameter anpassen muss. | |||
#!/bin/sh -f | |||
apply -3 "sh -c 'echo %1: \$((%2 \* 100000 / %3 / 1000)).\$((%2 \* 100000 / %3 % 1000)) %'" $( ( | |||
echo lines words bytes | |||
<nowiki> cat "$@" | grep -Exv '#\!.*|[[:space:]]*' | grep -E '^[[:space:]]*#' | wc</nowiki> | |||
<nowiki> cat "$@" | grep -Exv '#\!.*|[[:space:]]*' | wc</nowiki> | |||
) | rs -t 3 3) | |||
==== Update ==== | |||
Inzwischen habe ich erfahren, dass die Befehle apply und rs unter den gängigen GNU/Linux-Systemen nicht verfügbar sind. Also erkläre ich hier mal was sie machen: | |||
; rs -t 3 3 | |||
: Betrachtet die eingehenden Daten als 3x3 Matrix und transformiert sie. | |||
; apply -3 | |||
: Führt einen Befehl mit jeweils 3 der Parameter die nach dem Befehl kommen aus. Bei 9 Parametern wird der Befehl also 3 mal ausgeführt. | |||
== [[Benutzer:Nomeata]] == | |||
Für L-seed gabs dieses „Alle Twit zu einem Thema suchen und eines nach dem anderen eine Minute lang in eine Datei schreib“-Skript. Braucht libwww-perl, libxml-xpath-perl und lynx. | |||
<pre> | |||
while sleep 60; | |||
do | |||
GET "http://search.twitter.com/search.atom?q=%23GPN8&since_id=$(cat msg.id)" > msg.atom | |||
if xpath -q -e "//entry" msg.atom |grep -q . | |||
then | |||
xpath -q -e "//entry[last()]/id/text()" msg.atom |cut -d: -f3 > msg.id | |||
echo -n \ | |||
$(echo $( | |||
xpath -q -e '//entry[last()]/author/name/text()' msg.atom | | |||
lynx -dump -stdin|lynx -dump -stdin -nolist | | |||
cut -d\( -f1 | |||
))"@twitter:" \ | |||
$( | |||
xpath -q -e '//entry[last()]/content/text()' msg.atom | | |||
lynx -dump -stdin|lynx -dump -stdin -nolist | |||
) \ | |||
> msg.txt | |||
else | |||
echo -n > msg.txt | |||
fi | |||
done | |||
</pre> | |||
[[Kategorie:GPN8]] |
Aktuelle Version vom 5. Juli 2009, 17:41 Uhr
Code und Basteleien
Auf dieser Seite kann sich jeder verewigen, der auf der GPN etwas programmiert oder gebaut hat.
user:kamikaze
Objektorientierte Shell-Skripte
Ich habe ein kleines Framework für objektorientierte Shell-Skripte geschrieben. Das wird irgendwann in http://bsdadminscripts.sf.net/ genutzt.
Den Code habe ich mal vorläufig auf BSDForen.de veröffentlicht: http://www.bsdforen.de/showthread.php?t=23245
Code-Kommentare
Im Rahmen einer kleinen Unterhaltung über Code-Kommentare, habe ich dieses kleine Skript hier produziert, das ausspuckt wir groß der Kommentaranteil in einem Shell-Skript ist. Das ganze funktioniert unter FreeBSD RELENG_7. Kann sein, das man mit GNU ein paar Parameter anpassen muss.
#!/bin/sh -f apply -3 "sh -c 'echo %1: \$((%2 \* 100000 / %3 / 1000)).\$((%2 \* 100000 / %3 % 1000)) %'" $( ( echo lines words bytes cat "$@" | grep -Exv '#\!.*|[[:space:]]*' | grep -E '^[[:space:]]*#' | wc cat "$@" | grep -Exv '#\!.*|[[:space:]]*' | wc ) | rs -t 3 3)
Update
Inzwischen habe ich erfahren, dass die Befehle apply und rs unter den gängigen GNU/Linux-Systemen nicht verfügbar sind. Also erkläre ich hier mal was sie machen:
- rs -t 3 3
- Betrachtet die eingehenden Daten als 3x3 Matrix und transformiert sie.
- apply -3
- Führt einen Befehl mit jeweils 3 der Parameter die nach dem Befehl kommen aus. Bei 9 Parametern wird der Befehl also 3 mal ausgeführt.
Benutzer:Nomeata
Für L-seed gabs dieses „Alle Twit zu einem Thema suchen und eines nach dem anderen eine Minute lang in eine Datei schreib“-Skript. Braucht libwww-perl, libxml-xpath-perl und lynx.
while sleep 60; do GET "http://search.twitter.com/search.atom?q=%23GPN8&since_id=$(cat msg.id)" > msg.atom if xpath -q -e "//entry" msg.atom |grep -q . then xpath -q -e "//entry[last()]/id/text()" msg.atom |cut -d: -f3 > msg.id echo -n \ $(echo $( xpath -q -e '//entry[last()]/author/name/text()' msg.atom | lynx -dump -stdin|lynx -dump -stdin -nolist | cut -d\( -f1 ))"@twitter:" \ $( xpath -q -e '//entry[last()]/content/text()' msg.atom | lynx -dump -stdin|lynx -dump -stdin -nolist ) \ > msg.txt else echo -n > msg.txt fi done