findで取得したファイルを出力したい場合のワンライナー

findコマンドで、ファイル一覧取得して、それを加工して、出力したいときってよくありますよね!!

最近なんでもxargs脳になっていたりするんですが、こういうのはできません。。。
例として、htmlファイル取得してきて、html2rst.py で、rstファイル化したいとします。

find -name '*.html' -print0 |xargs -i -0 python html2rst.py {} > "{}.txt"

まぁ、テストがてらにecho をおいてやると、コマンド自体は正しく発行されてるじゃん!!ってなったりします。

find -name '*.html' -print0 |xargs -i -0 echo "python html2rst.py {} > {}.txt"
python html2rst.py ./01.html > ./01.html.txt
python html2rst.py ./02.html > ./02.html.txt
python html2rst.py ./03.html > ./03.html.txt
 :
 :

そのあと、echo外すと、え!?!?ってなるんですけどね。。。
なので、こんな時は、while readでファイル名を取得してきて対応します。

find -name '*.html'|while read file; do  python html2rst.py $file > $file.txt;  done;

結構凝り固まった頭になってて、悩むこと多いので、備忘録として。。。
なんとなく、echoでコマンド発行されてるんで、その後を加工してやるとうまくいくような気もするんだけど。。。