すべてのサブディレクトリのすべてのPHPファイルに「iconv」を適用する

すべてのサブディレクトリのすべてのPHPファイルに「iconv」を適用する

複数のサブディレクトリのファイルを変更しようとしています。

以下は現在のディレクトリのみを処理します。

for file in *.php; do 
    iconv -f cp949 -t utf8 -o "$file.new" "$file" && mv -f "$file.new" "$file"
done

どのサブディレクトリのすべてのPHPファイルにどのように適用できますか?

答え1

現在、ディレクトリに多くのサブディレクトリがあり、ここに次の.phpファイルが含まれているとします。

for file in */*.php; do 
    iconv -f cp949 -t utf8 -o "$file.new" "$file" && mv -f "$file.new" "$file"
done

深いディレクトリ階層があり、.phpその中のすべてのファイルを探したいとしましょう。

find . -type f -name '*.php' \
    -exec sh -c 'file="$0"; iconv -f cp949 -t utf8 -o "$file.new" "$file" && mv -f "$file.new" "$file"' {} ';'

上記の提案はテストされていません。

関連情報