Umlaute zurechtstückeln…
Für schnelle Hacks ist Ruby manchmal gar nicht so schlecht. :-) Will
man eine geTeXte Ausarbeitung zur automatischen
<strike>Syntaxprüfung</strike> Rechtschreib- und Grammatikprüfung in
eine populäre Textverarbeitung kopieren, bekommt man schnell Probleme,
denn ps2ascii spuckt für Umlaute nur die LaTeX-typischen
"a
, "o
und "u
aus. Und wer will
das bei einer zwanzigseitigen Ausarbeitung auch alles von Hand ändern?
Manchmal werden jedoch vor Umlauten auch (in der Mitte vom Wort) ein
paar Zeilenumbrüche eingefügt. sed
ist also keine Option.
#!/usr/bin/env ruby -w text = STDIN.read [ [ 'u', 'ü' ], [ 'o', 'ö' ], [ 'a', 'ä' ], [ 'U', 'Ü' ], [ 'A', 'Ä' ], [ 'O', 'Ö' ] ].each do |uml| orig = uml[0] exp = uml[1] text.gsub!("\\n\\n\"" + orig, exp) text.gsub!("\"" + orig, exp) end print text
Was machen nur die ganzen Leute, die keine handliche Programmiersprache können, in solchen Situationen?
Nachtrag: Wenn man den funktionalen Stil aushält, kann man es noch kürzer machen, aber so schreibe ich normalerweise keine kleinen Hacks wie diesen:
print [ [ 'u', 'ü' ], [ 'o', 'ö' ], [ 'a', 'ä' ], [ 'U', 'Ü' ], [ 'A', 'Ä' ], [ 'O', 'Ö' ] ].inject(STDIN.read) do |text,uml| text.gsub("\\n\\n\"" + uml[0], uml[1]).gsub("\"" + uml[0], uml[1]) end