|
|
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
|
|
Last modified 03/July/97