Sollte es wirklich vorkommen, dass jemand anderes Nokia-SMS-Dateien (.vmg) in LaTeX einbinden will, ist hier mein zusammengestückelter Workflow:
1. SMS vom Handy ziehen (Nokiasoftware)
möglichst in einen extra Ordner dann funktionieren die folgenden scripte alle mit "*.tex")
2. aus den .vmg die .tex erzeugen
das folgende script "vmg2tex.sh" verarbeitet eine als Parameter übergebene vmg
Code:
#!/bin/sh
FILE=$1;
MESSAGE=$(grep -v '^BEGIN:\|^Date:\|^VERSION:\|^X-IRMC-STATUS:\|^X-IRMC-BOX:\|^X-NOK-DT:\|^X-MESSAGE-TYPE:\|^BEGIN:\|^VERSION:\|^N:\|^TEL:\|^END:' $FILE);
NUMBER=$(grep 'TEL:[0-9|+]' $FILE | sed 's/:/ /g' | awk '{print $2;}');
YEAR=$(grep 'Date:' $FILE | sed 's/:/ /g' | sed 's/\./ /g' | awk '{print $2;}');
MONTH=$(grep 'Date:' $FILE | sed 's/:/ /g' | sed 's/\./ /g' | awk '{print $3;}');
DAY=$(grep 'Date:' $FILE | sed 's/:/ /g' | sed 's/\./ /g' | awk '{print $4;}');
HOUR=$(grep 'Date:' $FILE | sed 's/:/ /g' | sed 's/\./ /g' | awk '{print $5;}');
MINUTE=$(grep 'Date:' $FILE | sed 's/:/ /g' | sed 's/\./ /g' | awk '{print $6;}');
SECOND=$(grep 'Date:' $FILE | sed 's/:/ /g' | sed 's/\./ /g' | awk '{print $7;}');
FROMTO=$(grep 'X-MESSAGE-TYPE:' $FILE | sed 's/:/ /g' | sed 's/\./ /g' | awk '{print $2;}');
if [ "$FROMTO" = "DELIVER" ]; then FROMTO2="von"; fi
if [ "$FROMTO" = "SUBMIT" ]; then FROMTO2="an" ; fi;
echo "\sms{$DAY}{$MONTH}{$YEAR}{$HOUR}{$MINUTE}{$SECOND}{$FROMTO2}{$NUMBER}{$MESSAGE}";
das Script kann für alle sms gleichzeitig aufgerufen werden mit:
Code:
for i in $(ls -1 *.vmg); do sh vmg2tex.sh $i>$i.tex; done;
3. Die Rufnummern können durch den Namen ausgetauscht werden mit:
Code:
sed -i 's/[+0-9]*171234567/Alice/g' *.tex;
4. Die Sonderzeichen und Leerzeichen aller tex-Dateien werden für \seqsplit formatiert mit
Code:
sed -i 's/\([äöüÄÖÜ]\)/{"{\1}}/g' *.tex
sed -i 's/Ö/O/g' *.tex
sed -i 's/Ä/A/g' *.tex
sed -i 's/Ü/U/g' *.tex
sed -i 's/ö/o/g' *.tex
sed -i 's/ä/a/g' *.tex
sed -i 's/ü/u/g' *.tex
sed -i 's/[ ]*}/}/g' *.tex
sed -i 's/ /~/g' *.tex
sed -i 's/ß/{\\ss}/g' *.tex
sed -i 's/ñ/{\\~{n}}/g' *.tex
sed -i "s/é/{\\\'{e}}/g" *.tex
sed -i "s/è/{\\\`{e}}/g" *.tex
sed -i "s/í/{\\\'{i}}/g" *.tex
In der Haupt-tex-Datei können die SMS dann einfach eingebunden werden als Include
Code:
\input{2010-01-25_00.24.00.vmg.tex}
Der Befehl \sms[9], der in den SMS genutzt wird, muss in der Haupt-tex-Datei definiert werden:
Code:
%\sms{#1 DAY}{#2 MONTH}{#3 YEAR}{#4 HOUR}{#5 MINUTE}{#6 SECOND}{#7 von/an}{#8 NUMBER/Name}{#9 MESSAGE}
% Formatiert die einzelnen übergebenen SMS-Daten
\newcommand{\sms}[9]{
\textbf{SMS #7 #8} \textsc{(#4:#5:#6)}\\
\texttt{\seqsplit{#9}}\\\\
}
Wenn das wirklich jemandem genutzt hat, möge _/er/sie es hier posten.
sed-Tutorialliste auf: http://wiki.ubuntuusers.de/sed
Lesezeichen