覚書

サイトをXHTML1.0化しようとしているが、その一部で使用した処理。ディレクトリツリー内の一部を除く全てのファイルに一括置換処理を行う。

find . -path './cpp' -prune -o -exec sed -i -e 's/<hr class="full">/<hr class="full" \/>/g' -e 's/<hr>/<hr \/>/g' '{}' ';'

-prune は -path で指定されたパス以下を除く。直後の -o は man ペイジに記載無しだが、例には付いているので。sed の -i オプションはファイル上書き。{} と ; とを '' で囲むのを忘れずに。

2/20追記

find の -o オプションはただの or 演算だったようである。つまり、-prune が偽を返したときだけ、-exec が実行されるという寸法なわけだな。-prune は常に偽を返すと man ペイジには書いてあるが、イマイチ役割りが分からないな。-path にディレクトリツリーを降ろさせるということなのだろうか?