単位認定試験pdfのファイル名をちょっと料理しました
放送大学って色々学習支援をネットから受けられるわけですが、微妙に使い勝手が悪い気がします。放送授業の時間割とかGoogleカレンダーと連携させたいけど手作業で打ち込むしかなかったり、資料室のインターネット配信は埋め込み再生のほうが良さそうとかですね。
で、単位認定試験が迫っていて遅まきながら、過去問を落とそうと思ったら、ファイル名が"科目番号-年度+学期+問題か解説.pdf"という規則だったので、科目名が分かりにくいと思いました。
それで、こんな感じのシェルスクリプトを書きました。
#!/bin/sh
if [ ! -f "$1" ]; then
echo "no such file"
exit 1
fi
html="$1"
for sbjnum in $(grep -oE '[0-9]{7}' "$html" | uniq); do
for pdf in $(ls -f | grep -E "$sbjnum-[0-9]{4}[aq]\.pdf"); do
sbjname=$(
grep "$sbjnum" "$html" |
sed 's;.*nowrap="">\([^<]\+\)</td>.*;\1;g')
echo "found: $sbjname"
mv "$pdf" $(echo "$pdf" | sed "s;[0-9]\{7\};$sbjname;")
done
done
exit
“単位認定試験問題・解答・解説一覧"のhtmlそのものと任意の科目のpdfをダウンロードし、引数にhtmlを指定して実行すると、カレントディレクトリ内にある過去問pdfの、ファイル名に含まれる科目番号が科目名に置き換わります。
分かりにくいですがこんな感じです。
わりと雑に書いたので、すぐ使い物にならなくなりそうな気がしますが、まあいいかなぁ