ディレクトリ内のすべてのファイルでタブをスペースに変換するにはどうすればいいですか? 質問する

ディレクトリ内のすべてのファイルでタブをスペースに変換するにはどうすればいいですか? 質問する

ディレクトリ内のすべてのファイルでタブをスペースに変換するにはどうすればよいでしょうか (再帰的に行うことも可能)?

また、タブごとのスペース数を設定する方法はありますか?

ベストアンサー1

を に置き換えるだけsedでもいいのですが、最善の解決策ではありません。タブの間に「余分な」スペースがある場合、置き換えた後もそのスペースは残るので、余白は不揃いになります。行の途中で拡張されたタブも正しく動作しません。 ではbash、代わりに次のように記述できます。

find . -name '*.java' ! -type d -exec bash -c 'expand -t 4 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;

expand現在のディレクトリ ツリー内のすべての Java ファイルに適用します。-name他のファイル タイプをターゲットにしている場合は、引数を削除または置き換えます。コメントの 1 つで言及されているように、-name弱いワイルドカードを削除または使用するときは、十分に注意してください。意図せずにリポジトリやその他の隠しファイルを簡単に上書きしてしまう可能性があります。元の回答に次の内容が含まれていたのはそのためです。

何か問題が発生した場合に備えて、このようなことを試す前に必ずツリーのバックアップ コピーを作成してください。

おすすめ記事