#!/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