ubuntuusers.de

Programm zur Translation von russischen Wörtern

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

Alci

Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

Ich möchte mir gerne ein Bash-Skript schreiben, das im Terminal ein russisches Wort Buchstabe für Buchstabe in die lateinische Schrift translitiert, also Buchstaben austauscht. Um einen einzelnen Buchstaben zu translitieren habe ich schon ein Skript geschrieben, da ich aber auf dem Gebiet der Programmierung noch ein Einsteiger bin, würde ich mich sehr über Mithilfe freuen. Mein Skript habe ich mal hierhin eingefügt:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
#!/bin/bash
if [ $1 == "а" ]
  then
    echo "a"
fi
if [ $1 == "б" ]
  then
    echo "b"
fi
if [ $1 == "в" ]
  then
    echo "w"
fi
if [ $1 == "г" ]
  then
    echo "g"
fi
if [ $1 == "д" ]
  then
    echo "d"
fi
if [ $1 == "е" ]
  then
    echo "je"
fi
if [ $1 == "ё" ]
  then
    echo "jo"
fi
if [ $1 == "ж" ]
  then
    echo "sh"
fi
if [ $1 == "з" ]
  then
    echo "s"
fi
if [ $1 == "и" ]
  then
    echo "i"
fi
if [ $1 == "й" ]
  then
    echo "j"
fi
if [ $1 == "к" ]
  then
    echo "k"
fi
if [ $1 == "л" ]
  then
    echo "l"
fi
if [ $1 == "м" ]
  then
    echo "m"
fi
if [ $1 == "н" ]
  then
    echo "n"
fi
if [ $1 == "о" ]
  then
    echo "o"
fi
if [ $1 == "п" ]
  then
    echo "p"
fi
if [ $1 == "р" ]
  then
    echo "r"
fi
if [ $1 == "с" ]
  then
    echo "s"
fi
if [ $1 == "т" ]
  then
    echo "t"
fi
if [ $1 == "у" ]
  then
    echo "u"
fi
if [ $1 == "ф" ]
  then
    echo "f"
fi
if [ $1 == "х" ]
  then
    echo "ch"
fi
if [ $1 == "ц" ]
  then
    echo "z"
fi
if [ $1 == "ч" ]
  then
    echo "tsch"
fi
if [ $1 == "ш" ]
  then
    echo "sch"
fi
if [ $1 == "щ" ]
  then
    echo "schtsch"
fi
if [ $1 == "ъ" ]
  then
    echo ""
fi
if [ $1 == "ы" ]
  then
    echo "y"
fi
if [ $1 == "ь" ]
  then
    echo ""
fi
if [ $1 == "э" ]
  then
    echo "e"
fi
if [ $1 == "ю" ]
  then
    echo "ju"
fi
if [ $1 == "я" ]
  then
    echo "ja"
fi
if [ $1 == "a" ]
  then
    echo "а"
fi
if [ $1 == "b" ]
  then
    echo "б"
fi
if [ $1 == "c" ]
  then
    echo "ц"
fi
if [ $1 == "d" ]
  then
    echo "д"
fi
if [ $1 == "e" ]
  then
    echo "е"
fi
if [ $1 == "f" ]
  then
    echo "ф"
fi
if [ $1 == "g" ]
  then
    echo "г"
fi
if [ $1 == "h" ]
  then
    echo "х"
fi
if [ $1 == "i" ]
  then
    echo "и"
fi
if [ $1 == "j" ]
  then
    echo "й"
fi
if [ $1 == "k" ]
  then
    echo "к"
fi
if [ $1 == "l" ]
  then
    echo "л"
fi
if [ $1 == "m" ]
  then
    echo "м"
fi
if [ $1 == "n" ]
  then
    echo "н"
fi
if [ $1 == "o" ]
  then
    echo "о"
fi
if [ $1 == "p" ]
  then
    echo "п"
fi
if [ $1 == "q" ]
  then
    echo "кв"
fi
if [ $1 == "r" ]
  then
    echo "р"
fi
if [ $1 == "s" ]
  then
    echo "с"
fi
if [ $1 == "t" ]
  then
    echo "т"
fi
if [ $1 == "u" ]
  then
    echo "у"
fi
if [ $1 == "v" ]
  then
    echo "в"
fi
if [ $1 == "w" ]
  then
    echo "в"
fi
if [ $1 == "x" ]
  then
    echo "кс"
fi
if [ $1 == "y" ]
  then
    echo "ы"
fi
if [ $1 == "z" ]
  then
    echo "ц"
fi

Vielleicht hilft es euch, meine Frage besser zu verstehen. Ich habe dieses Skript schon als translate unter /usr/local/bin/ gespeichert und mit

chmod a+x /usr/local/bin/translate

die Rechte geändert. Jetzt kann ich im Terminal mit dem Befehl und einem Buchstaben, einen Buchstaben translitieren. Nur wie muss man das Skript verändern, um ganze Wörter zu translitieren?

Wäre sehr dankbar für Mithilfe!

Grüsse Niklas

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

Schau mal ...

if [ $1 == "а" ]
  then
    echo "a"
fi
if [ $1 == "б" ]
  then
    echo "b"
fi

Wenn $1 "a" ist, dann wird nach der Ausgabe von "a" dennoch geprüft ob $1 nicht auch "б" ist. Das kann ja eigentlich nicht sein - man könnte da also ein "else" benutzen. Das ganze etwa 26 Mal, dann ist es ein Test, nicht 26.

Damit nicht genug, ist eine if/else Verzweigung für mehr als 2 Fälle meist besser durch ein switch bedient.

case "$1" in
    "a")
        echo "a"
        ;;
    "б")
        echo "b"
        ;;
#... weitere Fälle    
esac

Ich weiß nicht wie sattelfest tr ist bei Nicht-Ascii-Codes, aber wenn ja, dann ist das wohl das eleganteste:

echo WORT | tr "aб..." "ab..." 

TR steht für translate, wie Du vielleicht schon erraten hast, und damit wäre die Frage nach den ganzen Wörtern beantwortet - das übersetzt auch ganze Sätze, Seiten, Bücher.

Ansonsten würde ich eine Funktion suchen, die die Wortlänge ermittelt, und eine, die einen Zeichenweise Zugriff gestattet, und so zeichenweise das Wort übersetzen. ☺

Wenn Du des englischen mächtig bist, findest Du hier http://tldp.org/LDP/abs/html/refcards.html#AEN21400 Stringfunktionen.

Alci

(Themenstarter)
Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

@user unknown

Erst mal viele Dank für deine Tipps. Mein Skript habe ich jetzt mal, wie in deinem zweiten Beispiel beschrieben, geändert. Also mit case.

Das tr hat bei mir nicht funktioniert, da es russische Buchstaben gibt, die man nicht in einem lateinischen Buchstaben ausdrücken kann z.B. щ=schtsch oder ъ,ь sind nur Härte- und Weichheitszeichen.

Des Englischen bin ich mächtig, nur könntest du mir mal ein Beispiel sagen, wie man das genau anwenden muss?

Über weitere Vorschläge wäre ich auch noch sehr dankbar.

Grüsse Niklas

Alci

(Themenstarter)
Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

Ich hab jetzt ein Add-on für Firefox gefunden. IM Translator http://imtranslator.net/. Habe mir dieses Add-on heruntergeladen http://imtranslator.net/plugin-tr.asp und installiert. Es macht genau das, was ich wollte, denn es kann russische Schrift und lateinische Schrift translitieren.

Nur gibt es auch so etwas für den Terminal?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

Da ich mit russischen Buchstaben nicht vertraut bin, hier mit abc->ABC:

#!/bin/bash
#
#
#
function zeichenTr ()
{
	case "$1" in
	    "a")
		echo -n "A"
		;;
	    "b")
		echo -n "B"
		;;
	    "c")
		echo -n "C"
		;;
	    *)
	    	echo -n $1
	    	;;
	esac
}

WORT=$1
LEN=${WORT}
# echo $LEN
i=0
max=${#WORT}

while ((i < max))
do
	zeichenTr ${WORT:$i:1}
	i=$((i+1))
done
echo

Für ein Wort wird die Länge bestimmt, und jedes Zeichen im Wort durch die oben schon skizzierte Funktion geschickt.

Alci

(Themenstarter)
Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

So vielen Dank für die Hilfe. Für mich ist Ubuntu und so noch ein bisschen neu, habe es erst seit Samstag. Aber nachdem mein Windows sich von selbst entfernt hat, habe ich mir Ubuntu drauf gemacht, denn es war schon immer mein Wunsch. Aber ich freue mich das es hier so ein hilfsbereites Forum gibt, dass ich für Windows vermisst habe.

Jetzt habe ich die russischen Zeichen eingesetzt. Funktioniert alles sehr gut nur muss ich mir jetzt auch noch die Mühe machen und alle Großbuchstaben einfügen? Kann man da nicht sagen, dass er Großschreibung ignorieren soll, oder so etwas ähnliches?

Alci

(Themenstarter)
Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

So habe jetzt mal alle Zeichen des russischen Alphabets groß und klein eingefügt und die deutschen Buchstaben auch. Das sieht dann so aus:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
#!/bin/bash
#
#
#edit Niklas Casper
function zeichenTr ()
{
	case "$1" in
	    "а")
		echo -n "a"
		;;
	    "б")
		echo -n "b"
		;;
	    "в")
		echo -n "w"
		;;
            "г")
		echo -n "g"
		;;
	    "д")
		echo -n "d"
		;;
	    "е")
		echo -n "je"
		;;
            "ё")
		echo -n "jo"
		;;
	    "ж")
		echo -n "sh"
		;;
	    "з")
		echo -n "s"
		;;
            "и")
		echo -n "i"
		;;
	    "й")
		echo -n "j"
		;;
	    "к")
		echo -n "k"
		;;
            "л")
		echo -n "l"
		;;
	    "м")
		echo -n "m"
		;;
	    "н")
		echo -n "n"
		;;
            "о")
		echo -n "o"
		;;
	    "п")
		echo -n "p"
		;;
	    "р")
		echo -n "r"
		;;
            "с")
		echo -n "s"
		;;
	    "т")
		echo -n "t"
		;;
	    "у")
		echo -n "u"
		;;
            "ф")
		echo -n "f"
		;;
	    "х")
		echo -n "ch"
		;;
	    "ц")
		echo -n "z"
		;;
            "ч")
		echo -n "tsch"
		;;
	    "ш")
		echo -n "sch"
		;;
	    "щ")
		echo -n "schtsch"
		;;
            "ъ")
		echo -n ""
		;;
	    "ы")
		echo -n "y"
		;;
	    "ь")
		echo -n ""
		;;
            "э")
		echo -n "e"
		;;
	    "ю")
		echo -n "ju"
		;;
	    "я")
		echo -n "ja"
		;;
            "a")
		echo -n "а"
		;;
	    "b")
		echo -n "б"
		;;
	    "c")
		echo -n "к"
		;;
            "d")
		echo -n "д"
		;;
	    "e")
		echo -n "е"
		;;
	    "f")
		echo -n "ф"
		;;
            "g")
		echo -n "г"
		;;
	    "h")
		echo -n "х"
		;;
	    "i")
		echo -n "и"
		;;
            "j")
		echo -n "й"
		;;
	    "k")
		echo -n "к"
		;;
	    "l")
		echo -n "л"
		;; 
            "m")
		echo -n "м"
		;;
	    "n")
		echo -n "н"
		;;
	    "o")
		echo -n "о"
		;;
            "p")
		echo -n "п"
		;;
	    "q")
		echo -n "к"
		;;
	    "r")
		echo -n "р"
		;;
            "s")
		echo -n "с"
		;;
	    "t")
		echo -n "т"
		;;
	    "u")
		echo -n "у"
		;;
            "v")
		echo -n "в"
		;;
	    "w")
		echo -n "в"
		;;
	    "x")
		echo -n "кс"
		;;
            "y")
		echo -n "ы"
		;;
	    "z")
		echo -n "ц"
		;;
	    "ä")
		echo -n "я"
		;;
            "ö")
		echo -n "ё"
		;;
	    "ü")
		echo -n "ю"
		;;
	    "ß")
		echo -n "сс"
		;;
            "А")
		echo -n "A"
		;;
	    "Б")
		echo -n "B"
		;;
	    "В")
		echo -n "W"
		;;
            "Г")
		echo -n "G"
		;;
	    "Д")
		echo -n "D"
		;;
	    "Е")
		echo -n "Je"
		;;
            "Ё")
		echo -n "Jo"
		;;
	    "Ж")
		echo -n "Sh"
		;;
	    "З")
		echo -n "S"
		;;
            "И")
		echo -n "I"
		;;
	    "Й")
		echo -n "J"
		;;
	    "К")
		echo -n "K"
		;;
            "Л")
		echo -n "L"
		;;
	    "М")
		echo -n "M"
		;;
	    "Н")
		echo -n "N"
		;;
            "О")
		echo -n "O"
		;;
	    "П")
		echo -n "P"
		;;
	    "Р")
		echo -n "R"
		;;
            "С")
		echo -n "S"
		;;
	    "Т")
		echo -n "T"
		;;
	    "У")
		echo -n "U"
		;;
            "Ф")
		echo -n "F"
		;;
	    "Х")
		echo -n "Ch"
		;;
	    "Ц")
		echo -n "Z"
		;;
            "Ч")
		echo -n "Tsch"
		;;
	    "Ш")
		echo -n "Sch"
		;;
	    "Щ")
		echo -n "Schtsch"
		;;
            "Ъ")
		echo -n ""
		;;
	    "Ы")
		echo -n "Y"
		;;
	    "Ь")
		echo -n ""
		;;
            "Э")
		echo -n "E"
		;;
	    "Ю")
		echo -n "Ju"
		;;
	    "Я")
		echo -n "Ja"
		;;
            "A")
		echo -n "А"
		;;
	    "B")
		echo -n "Б"
		;;
	    "C")
		echo -n "К"
		;;
            "D")
		echo -n "Д"
		;;
	    "E")
		echo -n "Е"
		;;
	    "F")
		echo -n "Ф"
		;;
            "G")
		echo -n "Г"
		;;
	    "H")
		echo -n "Х"
		;;
	    "I")
		echo -n "И"
		;;
            "J")
		echo -n "Й"
		;;
	    "K")
		echo -n "К"
		;;
	    "L")
		echo -n "Л"
		;; 
            "M")
		echo -n "М"
		;;
	    "N")
		echo -n "Н"
		;;
	    "O")
		echo -n "О"
		;;
            "P")
		echo -n "П"
		;;
	    "Q")
		echo -n "К"
		;;
	    "R")
		echo -n "Р"
		;;
            "S")
		echo -n "С"
		;;
	    "T")
		echo -n "Т"
		;;
	    "U")
		echo -n "У"
		;;
            "V")
		echo -n "В"
		;;
	    "W")
		echo -n "В"
		;;
	    "X")
		echo -n "Кс"
		;;
            "Y")
		echo -n "Ы"
		;;
	    "Z")
		echo -n "Ц"
		;;
	    "Ä")
		echo -n "Я"
		;;
            "Ö")
		echo -n "Ё"
		;;
	    "Ü")
		echo -n "Ю"
		;;
	    *)
	    	echo -n $1
	    	;;
	esac
}

WORT=$1
LEN=${WORT}
# echo $LEN
i=0
max=${#WORT}

while ((i < max))
do
	zeichenTr ${WORT:$i:1}
	i=$((i+1))
done
echo

Erst mal vielen Dank user unknown

Grüße Niklas

Lutki

Avatar von Lutki

Anmeldungsdatum:
17. Juni 2006

Beiträge: 372

Hier gibt es ein kleines Perlskript, welches noch ein paar Sonderfälle beim transliterieren beachtet.

Alci

(Themenstarter)
Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

So habe noch eine Frage zu den Sonderfällen, wie kann ich die in mein Bash-Skript einfügen? Das zum Beispiel sch nicht Buchstabe für Buchstabe übersetzt wird, sondern als Ш, also nur ein Buchstabe wird?

Und noch zum Perl-Skript, wenn ich transliteration.txt als .pl speichere und danach im Terminal folgendes eingebe:

sudo mv transliteration.pl /usr/local/bin/
cd /usr/local/bin/
chmod u+x transliteration.pl

Und danach:

transliteration.pl kyrillisch.txt transliteriert.txt

Kommt bei mir folgende Meldung:

readline() on closed filehandle INFILE at /usr/local/bin/transliteration.pl line 19.

Was habe ich falsch gemacht?

Lutki

Avatar von Lutki

Anmeldungsdatum:
17. Juni 2006

Beiträge: 372

Die Datei kyrillisch.txt muss existieren. Das Skript ist verbesserungswürdig, weil das filehandle nicht geprüft wird; ansonsten leistet es gute Arbeit.

Achtung: transliteriert.txt wird immer wieder neu geschrieben!

Alci

(Themenstarter)
Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

So jetzt klappt das Perl-Skript, es translitiert natürlich. 😉 Nur wollte ich gerne etwas was nur im Terminal lauft, also wo man keine Arbeit hat. Gibt es nicht vielleicht etwas für das Bash-Skript, dass es mehrere Buchstaben auch richtig übersetzt. Mein Skript klappt vom Russischen schon sehr gut aber aus dem Deutschen heraus klappt es noch nicht so gut. Vielleicht hat ja einer ein bisschen Ahnung von Bash oder kann mir einen Link schicken. Oder selbst ein wenig helfen.

Niklas

Alci

(Themenstarter)
Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

Ich habe mal ein Bash-Skript geschrieben, dass das Perl-Skript verbessert das bedeutet, das erst eine neue Datei kyrillisch.txt erstellt wird in die man dann das zu translitierende Wort hinenschreibt und dann speichert danach translitiert er mithilfe des Perl-Skriptes. Danach zeigt er translitiert.txt an. Nach schließen dieses Fensters werden dann die beiden Dateien gelöscht. Somit hat man nicht soviel Arbeit, ist aber eigentlich so wie mein Bash-Skript, nur meines kann auch aus dem Deutschen translitieren(ohne Sonderfälle).

#!/bin/bash
gedit kyrillisch.txt
transliteration.pl kyrillisch.txt transliteriert.txt
gedit transliteriert.txt
rm kyrillisch.txt
rm transliteriert.txt

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

Warum soll man das zu übersetzende Wort nicht als Argument mitgeben und die Übersetzung auf der Konsole angezeigt bekommen? Das ist doch total umständlich und recht sinnfrei, jedes Mal temporäre Dateien zu verwenden.

Alci

(Themenstarter)
Avatar von Alci

Anmeldungsdatum:
11. Januar 2009

Beiträge: 991

Wohnort: ~/

Wenn ich wüsste, wie das ginge, würde ich das machen. Ich habe aber wirklich keine Ahnung von Perl, deswegen habe ich ja ein Bash-Skript gemacht:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
#!/bin/bash
#
#
#edit Niklas Casper
function zeichenTr ()
{
	case "$1" in
            "")
                echo -n ""
                ;;
	    "а")
		echo -n "a"
		;;
	    "б")
		echo -n "b"
		;;
	    "в")
		echo -n "w"
		;;
            "г")
		echo -n "g"
		;;
	    "д")
		echo -n "d"
		;;
	    "е")
		echo -n "je"
		;;
            "ё")
		echo -n "jo"
		;;
	    "ж")
		echo -n "sh"
		;;
	    "з")
		echo -n "z"
		;;
            "и")
		echo -n "i"
		;;
	    "й")
		echo -n "j"
		;;
	    "к")
		echo -n "k"
		;;
            "л")
		echo -n "l"
		;;
	    "м")
		echo -n "m"
		;;
	    "н")
		echo -n "n"
		;;
            "о")
		echo -n "o"
		;;
	    "п")
		echo -n "p"
		;;
	    "р")
		echo -n "r"
		;;
            "с")
		echo -n "s"
		;;
	    "т")
		echo -n "t"
		;;
	    "у")
		echo -n "u"
		;;
            "ф")
		echo -n "f"
		;;
	    "х")
		echo -n "ch"
		;;
	    "ц")
		echo -n "z"
		;;
            "ч")
		echo -n "tsch"
		;;
	    "ш")
		echo -n "sch"
		;;
	    "щ")
		echo -n "schtsch"
		;;
            "ъ")
		echo -n "#"
		;;
	    "ы")
		echo -n "y"
		;;
	    "ь")
		echo -n "'"
		;;
            "э")
		echo -n "e"
		;;
	    "ю")
		echo -n "ju"
		;;
	    "я")
		echo -n "ja"
		;;
            "a")
		echo -n "а"
		;;
	    "b")
		echo -n "б"
		;;
	    "c")
		echo -n "к"
		;;
            "d")
		echo -n "д"
		;;
	    "e")
		echo -n "е"
		;;
	    "f")
		echo -n "ф"
		;;
            "g")
		echo -n "г"
		;;
	    "h")
		echo -n "х"
		;;
	    "i")
		echo -n "и"
		;;
            "j")
		echo -n "й"
		;;
	    "k")
		echo -n "к"
		;;
	    "l")
		echo -n "л"
		;; 
            "m")
		echo -n "м"
		;;
	    "n")
		echo -n "н"
		;;
	    "o")
		echo -n "о"
		;;
            "p")
		echo -n "п"
		;;
	    "q")
		echo -n "к"
		;;
	    "r")
		echo -n "р"
		;;
            "s")
		echo -n "с"
		;;
	    "t")
		echo -n "т"
		;;
	    "u")
		echo -n "у"
		;;
            "v")
		echo -n "в"
		;;
	    "w")
		echo -n "в"
		;;
	    "x")
		echo -n "кс"
		;;
            "y")
		echo -n "ы"
		;;
	    "z")
		echo -n "ц"
		;;
	    "ä")
		echo -n "я"
		;;
            "ö")
		echo -n "ё"
		;;
	    "ü")
		echo -n "ю"
		;;
	    "ß")
		echo -n "сс"
		;;
            "А")
		echo -n "A"
		;;
	    "Б")
		echo -n "B"
		;;
	    "В")
		echo -n "W"
		;;
            "Г")
		echo -n "G"
		;;
	    "Д")
		echo -n "D"
		;;
	    "Е")
		echo -n "Je"
		;;
            "Ё")
		echo -n "Jo"
		;;
	    "Ж")
		echo -n "Sh"
		;;
	    "З")
		echo -n "Z"
		;;
            "И")
		echo -n "I"
		;;
	    "Й")
		echo -n "J"
		;;
	    "К")
		echo -n "K"
		;;
            "Л")
		echo -n "L"
		;;
	    "М")
		echo -n "M"
		;;
	    "Н")
		echo -n "N"
		;;
            "О")
		echo -n "O"
		;;
	    "П")
		echo -n "P"
		;;
	    "Р")
		echo -n "R"
		;;
            "С")
		echo -n "S"
		;;
	    "Т")
		echo -n "T"
		;;
	    "У")
		echo -n "U"
		;;
            "Ф")
		echo -n "F"
		;;
	    "Х")
		echo -n "Ch"
		;;
	    "Ц")
		echo -n "Z"
		;;
            "Ч")
		echo -n "Tsch"
		;;
	    "Ш")
		echo -n "Sch"
		;;
	    "Щ")
		echo -n "Schtsch"
		;;
            "Ъ")
		echo -n "#"
		;;
	    "Ы")
		echo -n "Y"
		;;
	    "Ь")
		echo -n "'"
		;;
            "Э")
		echo -n "E"
		;;
	    "Ю")
		echo -n "Ju"
		;;
	    "Я")
		echo -n "Ja"
		;;
            "A")
		echo -n "А"
		;;
	    "B")
		echo -n "Б"
		;;
	    "C")
		echo -n "К"
		;;
            "D")
		echo -n "Д"
		;;
	    "E")
		echo -n "Е"
		;;
	    "F")
		echo -n "Ф"
		;;
            "G")
		echo -n "Г"
		;;
	    "H")
		echo -n "Х"
		;;
	    "I")
		echo -n "И"
		;;
            "J")
		echo -n "Й"
		;;
	    "K")
		echo -n "К"
		;;
	    "L")
		echo -n "Л"
		;; 
            "M")
		echo -n "М"
		;;
	    "N")
		echo -n "Н"
		;;
	    "O")
		echo -n "О"
		;;
            "P")
		echo -n "П"
		;;
	    "Q")
		echo -n "К"
		;;
	    "R")
		echo -n "Р"
		;;
            "S")
		echo -n "С"
		;;
	    "T")
		echo -n "Т"
		;;
	    "U")
		echo -n "У"
		;;
            "V")
		echo -n "В"
		;;
	    "W")
		echo -n "В"
		;;
	    "X")
		echo -n "Кс"
		;;
            "Y")
		echo -n "Ы"
		;;
	    "Z")
		echo -n "Ц"
		;;
	    "Ä")
		echo -n "Я"
		;;
            "Ö")
		echo -n "Ё"
		;;
	    "Ü")
		echo -n "Ю"
		;;
	    *)
	    	echo -n $1
	    	;;
	esac
}

WORT=$1
LEN=${WORT}
# echo $LEN
i=0
max=${#WORT}

while ((i < max))
do
	zeichenTr ${WORT:$i:1}
	i=$((i+1))
done
echo

Aber zum Perl-Skript kann ich nichts sagen. snafu1 Vielleicht hast du ja Ahnung von Perl und kannst ein bisschen helfen?!

Niklas

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

Nö, aber du könntest ja einen Thread machen, wo du das fragst. 😉 Da gucken die Perl-Experten dann wahrscheinlich eher rein als in diesen hier. Aber vielleicht haste auch Glück und hier findet sich noch jemand.

Antworten |