Created
March 12, 2012 03:33
-
-
Save river24/2019555 to your computer and use it in GitHub Desktop.
少し美味しくなったIEICEの2012年03月の総合大会のProceedingsを,さらにちょっとだけ美味しくするシェルスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# ---- ここから設定箇所 ---- | |
# IEICEの2012年03月の総合大会のProceedingsを少し美味しくするシェルスクリプト | |
# https://gist.github.com/2019544 | |
# を使って少し美味しくなった状態の"Settings"ディレクトリを指定して下さい. | |
ROOT_DIR="/Users/river24/Desktop/EIC2012G/Settings" | |
# 処理中の一時ファイルを出力する先を指定してください. | |
TMP_DIR="/tmp" | |
# ---- ここまで設定箇所 ---- | |
# 処理中に生成される一時ファイルです. | |
TMP_HTML="${TMP_DIR}/tmp.html" | |
SESSION_LIST="${TMP_DIR}/session.list" | |
PAPER_LIST="${TMP_DIR}/paper.list" | |
cd "${ROOT_DIR}" | |
# このスクリプトによる変更を施す前の './html' ディレクトリを, | |
# './html.backup' としてバックアップします. | |
# このスクリプトによる変更を施す前に戻したい場合は,これから復元して下さい. | |
if [ -e "./html.backup" ] | |
then | |
sleep 0 | |
else | |
if [ -e "./html" ] | |
then | |
cp -r "./html" "./html.backup" | |
else | |
echo "'./html' directory is not found." | |
exit | |
fi | |
fi | |
if [ -e "./html.backup" ] | |
then | |
if [ -e "./html" ] | |
then | |
rm -rf "./html" | |
fi | |
cp -r "./html.backup" "./html" | |
else | |
echo "failed to backup './html' directory as './html.backup'." | |
exit | |
fi | |
if [ -e "./html" ] | |
then | |
sleep 0 | |
else | |
echo "'./html' directory is not found." | |
exit | |
fi | |
cat "./html/program/schedule.html" | perl -pe 's|<br />\n|<br /><KAIGYOU>|g' | perl -pe 's|<hr />|\n <hr />\n |g' > ${TMP_HTML} | |
cp ${TMP_HTML} "./html/program/schedule.html" | |
egrep "[A-Z]+\-[0-9]+\. " "./html/program/schedule.html" > ${SESSION_LIST} | |
cat ${SESSION_LIST} | | |
while read SESSION | |
do | |
if [ -e $PAPER_LIST ] | |
then | |
rm $PAPER_LIST | |
fi | |
touch $PAPER_LIST | |
SESSION_ID=`echo " ${SESSION}" | perl -pe 's|^.*[^A-Z]+([A-Z]+\-[0-9]+)\..*$|$1|g'` | |
FLAG=`echo ${SESSION} | md5` | |
SESSION_TYPE1=`echo ${SESSION} | egrep "<[0-9]+〜[0-9]+>" | wc -l` | |
if [ ${SESSION_TYPE1} -eq 1 ] | |
then | |
SESSION_START=`echo " ${SESSION}" | perl -pe 's|^.*[^A-Z]+([A-Z]+\-[0-9]+)\..*<([0-9]+)〜([0-9]+)>.*$|$2|g'` | |
SESSION_END=`echo " ${SESSION}" | perl -pe 's|^.*[^A-Z]+([A-Z]+\-[0-9]+)\..*<([0-9]+)〜([0-9]+)>.*$|$3|g'` | |
i=${SESSION_START} | |
while [ ${i} -le ${SESSION_END} ] | |
do | |
echo "${SESSION_ID}-${i}" >> ${PAPER_LIST} | |
i=`expr ${i} + 1` | |
done | |
else | |
SESSION_TYPE2=`echo ${SESSION} | egrep "<[0-9]+>" | wc -l` | |
if [ ${SESSION_TYPE2} -eq 1 ] | |
then | |
SESSION_START=`echo ${SESSION} | perl -pe 's|^(.)| $1|g' | perl -pe 's|^.*[^A-Z]+([A-Z]+\-[0-9]+)\..*<([0-9]+)>.*$|$2|g'` | |
echo "${SESSION_ID}-${SESSION_START}" >> ${PAPER_LIST} | |
else | |
echo ${SESSION_ID} >> ${PAPER_LIST} | |
fi | |
fi | |
cat ${PAPER_LIST} | | |
while read PAPER_ID | |
do | |
find "./html" -type f | egrep "[^\/]+\.html" | xargs egrep "<option .*>${PAPER_ID}</option>" | | |
while read LINE | |
do | |
PAGE=`echo "${LINE}" | perl -pe 's/^([^:]+):(.*)$/$1/g'` | |
TARGET=`echo "${LINE}" | perl -pe 's/^([^:]+):(.*)$/$2/g'` | |
cat ${PAGE} | perl -pe "s|${TARGET}$|${TARGET}<option value='../../html/program/schedule.html#${FLAG}'>■スケジュール一覧で確認■</option>|g" > ${TMP_HTML} | |
cp ${TMP_HTML} ${PAGE} | |
done | |
done | |
SESSION_TOP=`cat ${PAPER_LIST} | head -n 1` | |
find "./html" -type f | egrep "[^\/]+\.html" | xargs egrep "<option .*>${SESSION_TOP}</option>" | head -n 1 | | |
while read LINE | |
do | |
TARGET=`echo "${LINE}" | perl -pe 's/^([^:]+):(.*)$/$2/g'` | |
LINK=`echo ${TARGET} | perl -pe 's|^.* value="([^"]+)".*$|$1|g'` | |
NEW_SESSION=`echo "${SESSION}" | perl -pe "s|${SESSION_ID}|<a href='${LINK}' name='${FLAG}' id='${FLAG}'>${SESSION_ID}</a>|g"` | |
cat "./html/program/schedule.html" | perl -pe "s|${SESSION}|${NEW_SESSION}|g" > ${TMP_HTML} | |
cp ${TMP_HTML} "./html/program/schedule.html" | |
done | |
done | |
cat "./html/program/schedule.html" | perl -pe 's|<KAIGYOU>|\n|g' | perl -pe 's|^<td| <td|g' | perl -pe 's|^</tr>| </tr>|g' | perl -pe 's|^( <td class="bumon"> </td>)$| $1|g' > ${TMP_HTML} | |
cp ${TMP_HTML} "./html/program/schedule.html" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment