指定されたディレクトリ以下の*.h *.cppファイルをUTF-8 BOMあり・CRLFで統一する

  • 4
    いいね
  • 0
    コメント

外部のソースコードを自分のプロジェクトに取り込む際にUTF-8 BOM追加と改行コードをCRLFで統一する必要があったので書いてみました。
nkf32.exe にパスが通っている cygwin 上で動作確認しています。

add-UTF8BOM-CRLF-to-h-cpp.sh
#!/bin/bash

if [ $# -ne 1 ]; then
    echo "Adds UTF-8 BOM to *.h and *.cpp below the specified dir." 1>&2
    echo "Usage: add-UTF8BOM-CRLF-to-h-cpp.sh [dir]" 1>&2
    exit 1
fi

find $1 \( -name '*.h' -or -name '*.cpp' \) | while read -r d;
    do nkf32 -w8OLw $d $d.hoge && mv -v $d.hoge $d;
done;

exit 0

逆にBOMを削除したい場合は nkfwin32 のコマンドラインオプションを以下のように"0"を追加します。

変更前: -w8OLw
変更後: -w80OLw

なお、上記スクリプト作成の際には、こちらの記事とこちらを参考にさせて頂きました。ありがとうございます。