buddylistgrapher

view graph_sed.sh @ 13:fe4ccf810364

some cleanups in sed-variant
author meillo@marmaro.de
date Sat, 09 Jun 2007 12:20:43 +0200
parents 3af263aed951
children
line source
1 #!/bin/bash
2 #
3 # Autor: markus schnalke (prog.marmaro.de)
4 # Autor: Julian Forster (www.ProgMaschine.de.vu)
5 #
8 if [ $# -eq 1 ]; then
9 if [ $1 = '--version' ] ; then
10 echo 'Buddylistgrapher (sed)'
11 echo '======================'
12 echo 'version 0.1'
13 echo
14 echo 'by Julian Forster (http://progmaschine.de.vu)'
15 echo 'and Markus Schnalke (http://prog.marmaro.de)'
16 exit 0
17 elif [ $1 = '--help' ] ; then
18 echo 'Buddylistgrapher (sed)'
19 echo '======================'
20 echo
21 echo "usage: $0 <input.txt>"
22 echo
23 echo "The grapher generates output to stdout."
24 echo "This output is the input for the graphviz tools."
25 echo
26 echo "You can use it like this:"
27 echo "$0 input.txt | dot -Tpng > pic.png"
28 echo
29 echo "ToDo:"
30 echo "The program was written for one specific kind of input data,"
31 echo "so there is still some work to do to use it for general input."
32 exit 0
33 else
35 file=/tmp/`basename $0`-$$
36 file2=/tmp/`basename $0`-$$-2
39 # sed
40 sed -n -e "
41 /^Profil/{
42 s/Profil von: \(.\+\)/\"\1\";/
43 w $file
44 s/;$//
45 h
46 #p
47 }
50 /^Nachricht/{
51 G
52 s/ - [-0-9]\+//
53 s/Nachricht schreiben \(.\+\)\n/\"\1\" /
54 s/\"\(.\+\)\" \"\(.\+\)\"/ \"\2\" -> \"\1\";/
56 # write out
57 #p
58 w $file2
59 }
60 " $1
62 # output
63 echo "digraph G {"
64 grep -f $file $file2
65 echo "}"
67 # cleanup
68 rm $file $file2
69 exit 0
71 fi
72 else
73 echo "usage: $0 <input.txt>"
74 exit 1
75 fi