Die Skriptsprache Perl kann direkt von der Kommandozeile aus verwendet werden, um Text in Dateien zu ersetzen. In Kombination mit find kann man da sehr einfach in Dateien ersetzen:
find -type f -exec perl -i -p -e 's/pattern/target/g;' {} \;
find -type f findet alle Dateien (aber nicht Verzeichnisnamen oder Links) unter dem aktuellen Verzeichnis. Soll nur in bestimmten Dateien ersetzt werden, wird zusätzlich der Parameter -name "shellpattern" oder -regex "expression" verwendet, zum Beispiel find -type f -name "*.html".
Das Tool wget bietet eine unglaubliche Funktionsfülle. Ich brauche es dazu, dynamisch erzeugte Webseiten zu archvieren.
Diese können nachher mit einem Browser als Dateien geöffnet werden, ohne Webserver. Dazu rufe ich wget folgendermassen auf:
wget -r -k -nv -E -e robots=off -l 0 http://server.ch/
Die interessanten Parameter sind:
Um Bilder in andere Formate umzuwandeln, gibt es das ImageMagick Programm "convert".
Um eine Datei umzuwandeln, schreibt man z.B.
convert test.gif test.png
Das Programm kennt eine unglaubliche Fülle an Graphikformaten, "man ImageMagick" listet alle unterstützen Formate auf. Convert kann ausserdem die Bilder auch noch manipulieren, siehe "man convert".
Was convert allerdings nicht kann, ist mehrere Bilder umwandeln. Ich habe dazu ein einfaches Shellskript batchconvert geschrieben. Die Datei als batchconvert abspeichern, in /usr/local/bin/ kopieren und mit chmod a+x ausführbar machen. Die Syntax ist:
batchconvert t <targettype> <dateiliste>, z.B. batchconvert t png *.gif
Um die Grösse von Bildern zu ändern gibt es den Parameter -resize, z.B.
convert -resize 800x600 test.png test.png
Wiederum geht das nur mit einem File. Mein Skript batchresize verkleinert oder vergrössert eine Liste von Bildern.
Dieses praktische Programm überprüft alle Links einer Site und meldet ob die Seiten noch existieren, ein redirect sendeten oder nicht gefunden wurden. Auf Wunsch erzeugt das Programm html Dateien mit den entsprechenden Informationen. Ich rufe es folgendermassen auf:
linklint -http -host localhost -doc . -net /@
Mehr zum Programm - das zumindest bei Debian / Ubuntu am einfachsten per apt-get installiert wird - ist unter www.linklint.org zu erfahren.