-
Notifications
You must be signed in to change notification settings - Fork 2
/
transform.sh
56 lines (47 loc) · 1.34 KB
/
transform.sh
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
#!/bin/bash
echo ""
echo "$1 -->"
echo ""
echo "Transformiert den Text aus der Datei $1,"
echo "wobei das lange s sowie Ligaturen ersetzt werden."
echo "Nur ein paar wenige Ligaturen haben standardiesierte"
echo "Unicode Plätze, somit muss evt. abhängig von der Schriftart"
echo "Anpassungen gemacht werden."
echo ""
cp $1 $1.origin
# clean up
sed -i -e 's/—//g' -e 's/^ //g' $1
# langes s und ligaturen damit
# ssi ligatur
sed -i -r "s/ssi//g" $1
# ssl ligatur
sed -i -r "s/ssl//g" $1
# si ligatur
sed -i -r "s/si//g" $1
# sl ligatur
sed -i -r "s/sl//g" $1
# st ligatur
sed -i -r "s/st/ſt/g" $1
# langes s und ss
# aus Wikipedia:
# Am Ende eines Wortes,
# vor einem Apostroph oder Bindestrich
# sowie vor einem der Buchstaben f, b und h steht rundes s: ſans, hommes, s’est$
# Sonst steht langes ſ.
sed -i -r "s/ss([^ \t\r\n\v\f.,;…'’bfh-])/\1/g" $1 # der Trennstrich - muss am Ende des Ausdruckes sein, escapen funktioniert hier nicht
sed -i -r "s/s([^ \t\r\n\v\f.,;…'’bfh-])/ſ\1/g" $1 # dito
# weitere ligaturen
sed -i -r "s/ct//g" $1
sed -i -r "s/ffi/ffi/g" $1
sed -i -r "s/ffl/ffl/g" $1
sed -i -r "s/fi/fi/g" $1
sed -i -r "s/fl/fl/g" $1
sed -i -r "s/ff/ff/g" $1
echo "--> $1 ERLEDIGT"
echo ""
echo "Zeilenumbruch nach maximal 60 Zeichen"
echo ""
fold -sw 60 $1 > $1.fold
mv $1.fold $1
echo "--> $1 ERLEDIGT"
echo ""