SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【bash】さくっと拡張子を変更する処理

問題

HTMLファイルがこのディレクトリの中にたくさんあるんだけど、拡張子を全部phpにしてください。

回答例

linuxならfindコマンドとbashのwhile + read でこんなことができる。

find . -name "*.html" | while read f; do cp "$f" "${f%.*}.php"; done

この感じで while read してしまうと、何でもできそうですね。

別解

これも動く。findしたパスを、sedで加工してコマンドの文字列にして、shに渡して実行してもらう。

find . -name "*.html" | sed -e 's/^\(.*\)\.[^.]*$/cp "\0" "\1.php"/g' | sh

関連するメモ

コメント