WordpressからHugoで使うためにmarkdown形式で出力したのはいいものの&
で始まる
“
や”
などのHTML特殊文字が入ってしまってるのが気になるのでfind
とsed
を使って一括置換することにした。
何故動かないか結構困ったのでメモ。
動かないもの find . -name '*.mkv' -exec bash -c 'echo "{}"' \; cygwin 環境、というかcmd.exeでcygwinの中のfindコマンドを呼び出してるとこれはエラーになっちゃいます。
理由 何故ならfindの\;の\は;をエスケープする役割なので、当然ここにはエスケープキャラクターを入れて置かなければならないわけですが、Windowsのcmdにおいて\はパス区切りであって何もエスケープしてくれません。
なのでcygwinのfindをcmd.exeやnyaosなどのWindows環境のシェルから使うときはcmd.exeのエスケープキャラクターの^を使ってこんなふうに書きましょう。
find . -name '*.mkv' -exec bash -c 'echo "{}"' ^; もしくはどちらの環境でも使える方法の
find . -name '*.mkv' -exec bash -c 'echo "{}"' ';' を使うのもいいかもしれません。