#!/bin/sh
# Script, um alle Dateien eines Verzeichnisses (oder nach Modifikation
# auch der Unterverzeichnisse) als HTML-Datei mit Index anzuzeigen:
# Der verwendete Befehl HTML ist ein simples SED-Script, was Sonderzeichen usw in HTML umwandelt.
# ...kann man sich aber sparen, der Browser zeigt's auch ohne an.
datei="/home/tux/bin/text.htm"
temp="/home/tux/bin/text.tmp"
cd
echo "...lese /home/tux/"$1"/*"
# Kreiere HTML-Header:
echo "" > $temp
echo "<html><head><meta http-equiv='content-type' content='text/html; charset=ISO-8859'>" > $datei
echo "<title>"$1"</title></head><body><br><b>" >> $datei
echo "TEXTE in :" $1"/*<br>" >> $datei
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</b>" >> $datei
for i in $1/* ; do
code=$(file $i | awk '{print $2}')
target=$(date +%N)
# UTF-8 kodierte Dateien werden nach ISO-8859-15 konvertiert:
if [ "$code" = "UTF-8" ];
then
echo "<br><a href='#"$target"'>"$i"</a></b><br> " >> $datei
echo "<a name='"$target"'> </a>" >> $temp
echo "<br><b> >>> "$i"</b> (UTF-8)<br>" >> $temp #Textvorschau:
cat $i | iconv -s -f UTF-8 -t ISO-8859-15 2>/dev/null | HTML | tee -a $temp | sed 's/<br>/ /g' | tr -s xX~#_. | head -c 80 >> $datei
fi
# ISO-8859 kodierte Dateien bleiben wie sie sind, Bilddateien etc werden nicht beruecksichtigt:
if [ "$code" = "ISO-8859" ];
then
echo "<br><a href='#"$target"'>"$i"</a></b><br> " >> $datei
echo "<a name='"$target"'> </a>" >> $temp #Textvorschau:
echo "<br><b> >>> "$i"</b> (ISO-8859)<br>" >> $temp
cat $i | HTML | tee -a $temp | sed 's/<br>/ /g' | tr -s xX~#_. | head -c 80 >> $datei
fi
done;
echo "<br><b>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</b><br>" >> $datei
# der Index wird direkt in $datei geschrieben, die dazugehörigen Texte angehaengt:
cat $temp >> $datei
echo "</body></html>" >> $datei
# oeffne mit Links-Browser:
links $datei
########################### FIN ##############################################################################################
OsunSeyi schrieb:Frage 1: Sind solche Sachen pure Spielerei, auf die man bei besserer Kenntnis der Konsole bestens verzichten könnte ?
- 2: Geht´s auch eleganter ?
- 3: Warum kann ich als 1. Argument nicht auch zB ' Dokumente/*' übergeben ('/*' wird nicht übergeben, also $1='Dokumente')
enscript.bin -E --color --language=html --toc -p ausgabe.html /usr/include/*.h && firefox ausgabe.html