41 lines
618 B
Plaintext
41 lines
618 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
mkfilename() {
|
||
|
printf "%.4d-%s" "$1" "$2" | tr '# :.' '_'
|
||
|
printf ".txt"
|
||
|
}
|
||
|
|
||
|
mkunderline() {
|
||
|
i=$1
|
||
|
while [ $i -gt 1 ];
|
||
|
do
|
||
|
printf "%s" "$2"
|
||
|
i=$(($i - 1))
|
||
|
done
|
||
|
}
|
||
|
|
||
|
fname=""
|
||
|
snum=0
|
||
|
|
||
|
while IFS='
|
||
|
' read -r line;
|
||
|
do
|
||
|
case $line in
|
||
|
\#\#*)
|
||
|
titlelen="$(utf8expr length "$line")"
|
||
|
title="$(utf8expr substr "$line" 3 $titlelen)"
|
||
|
fname="$(mkfilename "$snum" "$title")"
|
||
|
snum=$((snum + 1))
|
||
|
printf "\n %s\n %s\n\n" \
|
||
|
"$title" "$(mkunderline $titlelen "=")" > $fname
|
||
|
;;
|
||
|
*)
|
||
|
[ -n "$fname" ] && \
|
||
|
printf " %s\n" "$line" \
|
||
|
| sed 's,\t, ,' \
|
||
|
| sed 's,\*,o,' >> $fname
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|