next | next | up | down | Inhalt | Uebungen | Complete | Kommentar

all, section 8.5.

8.5.  Buchstabierkontrolle.

 1      #!/bin/sh
 2      # (c) hpb, Sat Aug 31 12:33:42 MET DST 1991
 3      #
 4      
 5      usage()
 6      {
 7      echo "`basename $0`: `basename $0` [-D dict] [-d delete] [-a add_on] file"
 8      echo "---------------------------------------------------------"
 9      echo " Vergleicht alle Woerter der Eingabedatei (ASCII oder troff-Text)"
10      echo " mit einem Woerterbuch."
11      echo " Alle Woerter, die im Woerterbuch nicht"
12      echo " enthalten sind, werden auf stdout ausgegeben."
13      echo ""
14      echo " Einbuchstabige, zweibuchstabige, dreibuchstabigen Worte"
15      echo " und Worte die mit einem Punkt beginnen"
16      echo " werden entfernt."
17      echo " Alle Worte die mit einem Punkt beginnen werden entfernt."
18      echo ""
19      echo " Existiert eine Datei 'add_on' wird diese zum"
20      echo " Woerterbuch hinzugenommen."
21      echo ""
22      echo " Alle Worte die in der Datei 'delete' enthalten sind,"
23      echo " werden nicht ausgegeben."
24      echo "---------------------------------------------------------"
25      }
26      
27      TMP=/tmp/`basename $0`.$$
28      TMP_WDB=/tmp/wdb.$$
29      WDB=$HOME/bin/dict
30      ADD_ON=add_on
31      DELETE=delete
32      INPUT_FILES=" "
33      PROG=`basename $0`
34      
35      while :
36      do      case $1
37              in -D)          shift;          WDB=$1
38              ;; -d)          shift;          DELETE=$1
39              ;; -a)          shift;          ADD_ON=$1
40              ;; -*)          usage;          exit 1
41              ;; *)           break
42              esac
43              shift
44      done
45      
46      if [ ! -f $WDB ]
47      then
48              echo "$PROG: Woerterbuch ($WDB) existert nicht"
49              exit 1
50      fi
51      
52      if [ ! -f $ADD_ON ]
53      then
54              echo "$PROG: Warning: Lokales Woerterbuch ($ADD_ON)  existert nicht" >&2
55              ADD_ON=
56      fi
57      
58      if [ ! -f $DELETE ]
59      then
60              echo "$PROG: Warning: spezielles  Woerterbuch ($DELETE)  existert nicht" >&2
61              DELETE=
62      fi
63      
64      
65      case $#                 # Mindestens eine Datei muss vorhanden sein
66      in   0) usage;
67              exit 2
68      esac
69      
70      while :                 # alle Eingabedateien müssen existieren.
71      do
72              case $1
73              in   '') break
74              esac
75                      
76              if [ ! -f "$1" ]
77              then
78                      echo "$PROG: $1 existiert nicht!"
79                      echo "$PROG: bye bye."
80                      exit 1
81              else
82                      INPUT_FILES="$INPUT_FILES $1"
83                      shift
84              fi
85      done
86      
87      cat $INPUT_FILES |  sed  's/\\f(CW//g
88                       s/\\f[123456789P]//g
89                       s/\\(hy//g
90                       s/\\(<<//g
91                       s/\\(>>//g
92                       s/\\\*\[//g
93                       s/\\\*$//g
94                       s/\\s[+-][0-9]//g
95                       s/\\s0//g'                                     \
96              |  /usr/bin/tr  '[()[]{},;:~"!@$%^&<>/ ] ' '\012'       \
97              |  grep -v '^\.'        |  grep -v '^.$'                \
98              |  /usr/bin/tr  '\.' '\012'      |  grep -v '^$'        \
99              |  grep -v '^..$'       |  grep -v '^...$'              \
10              |  grep -v '^.$'                                        \
10              |  sort -u                                         > $TMP
10      
10      cat $DELETE $ADD_ON $WDB | sort -u > $TMP_WDB
10      
10      comm $TMP $TMP_WDB  | grep -v ' '
10      
10      rm -f $TMP $TMP_WDB
10      exit 0


back | next | up | down | Inhalt | Uebungen | Complete | Kommentar


Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).

Last modified 03/July/97