findメモ

この日記の記事(限りなくHTML4 Strictに近くて、ISO-2022JPで書かれているファイル)を諸般の事情により内容を再利用することを目的に、元の記事をを残しつつ、XHTML 1.0 Strict(UTF-8)に変換しようかと画策している。今回の見直しは結構大きめで、せっかくだからスタイルシートの指定も一気につもりつもりなのだ。

今日の努力で一日分の記事のファイル(index.html)について、上記の変換がshとsedとHTML Tidyでできるようになったのだが、変換したいファイルはyyyyが西暦年、mmが月、ddが日として

~/html/diary/yyyy/mm/dd/

と言うディレクトリに静的に入っている。個数を勘定(LS-lRしてindex.htmlを検索語にgrep書けて行数を数えただけ)してみたところ、1200個くらいのファイルがある。(足かけ5年分だとこのくらい?当然ディレクトリの個数がその程度ある。) さすがに手でやるのも気が遠いというか、そんなの人間のお仕事ではないので、再帰的にできないかなと思うわけだ。いったん1つのファイルを処理する適当に書いたシェルスクリプトはこんなかんじ。あんまり考えないで書いたので、動作の通りそのまんま。

bash nikki2xhtml.sh #!/bin/sh if [ -e $1.orig ] ; then echo "既に処理済みです" else cp $1 $1.orig sed -e 's/www\.ymzk\.org\/~kentaro/www.dabesa.org/' \ -e 's/diary\/diary\.css/standard.css/' \ -e 's/ align=\"right\"/ class=\"d_footer\"/' \ -e 's/<code><pre>/<pre><code>/' \ -e 's/<\/pre><\/code>/<\/code><\/pre>/' $1.orig > ~/tmp/tmp1 iconv -f ISO-2022-JP -t EUC-JP ~/tmp/tmp1 > ~/tmp/tmp2 tidy -output ~/tmp/tmp3 -config ~/TidyConf.txt ~/tmp/tmp2 sed -e 's/EUC-JP/UTF-8/' \ -e 's/<pre><code>/<div class=\"code\">/' \ -e 's/<\/code><\/pre>/<\/div>/' ~/tmp/tmp3 > ~/tmp/tmp4 iconv -f EUC-JP -t UTF-8 ~/tmp/tmp4 > ~/tmp/$1 rm ~/tmp/tmp[1-4] fi

~/html/diary までは同じだから、~/html/diaryからの相対パスで変換したいファイル名のリストを作って、1つずつ食べていただけばいいのだろうか? と思ったのだが、たしか再帰的に呼び出すコマンドがあったようなと思ってTLUC-MLで質問したら、吉藤さんから「find?」と言うコメントをいただいたので、_ああ、そんな便利なコマンドあったなぁ_と思いだした。シェルスクリプトをnikki2xhtml.shとした場合、

find ~/html/diary -name index.html -exec ./nikki2xhtml.sh {} \;

とすれば良いわけだ。なんだか1年くらい前にもfindな話を聞いたのを思い出した… findは1年ぶり、sedに至っては12年ぶりだ… わすれるわなあ。と言うことでメモ。(なんか前回も吉藤さんにコメントをいただいた気がする…)

軽井沢ミーティング2018に参加

軽井沢ミーティング2018に初参加! 天気良くてよかった!さすがに5月末の週末は本当に天気が良い。Roadsterのイベントは前日入り出来る場合は可能な限り前日から参加している。主催者発表による今回の参加者は1975人、車はは1,002台。内訳は、NAは37%、NBは22%...… Continue reading

2017年も今日でおしまい

Published on December 31, 2017

Profoto A1の色温度の話

Published on December 21, 2017