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
|
#!/bin/sh
# Migrate Wiki content from vimki to vimki2 format.
fixfile() {
awk '
{
for (i = 1; i <= NR; i++) {
if (match($i, /^[A-Z][A-Z_0-9]*[a-z][a-z0-9]*[_A-Z]/) == 0) continue
s = $i
l = ""
while (match(s, /^[A-Z][A-Z_0-9]*[a-z]+/) != 0) {
l = l substr(s, 1, RLENGTH) " "
s = substr(s, RLENGTH+1)
}
p = match(s, /[^A-Za-z0-9_]/)
if (p != 0) {
s2 = substr(s, 1, p-1) "]" substr(s, p)
s = s2
} else s = s "]"
l = "[" l s
gsub(/[ \t_]+/, " ", l)
sub(/ *]/, "]", l)
$i = tolower(l)
}
print
}
' "${1:-HomePage}"
}
fixname() {
echo "$1" | awk '{
s = $0
l = ""
while (match(s, /^[A-Z][A-Z_0-9]*[a-z]+/) != 0) {
l = l substr(s, 1, RLENGTH) " "
s = substr(s, RLENGTH+1)
}
p = match(s, /[^A-Za-z0-9_]/)
if (p != 0) {
s2 = substr(s, 1, p-1) "]" substr(s, p)
s = s2
}
l = l s
gsub(/[ \t_]+/, " ", l)
sub(/ *$/, "", l)
print tolower(l)
}'
}
mkdir -p $HOME/Wiki2
cd $HOME/Wiki
for file in *; do
new=$(fixname "$file")
echo "$new"
fixfile "$file" > "$HOME/Wiki2/$new"
done
|