🛫

Windows→Mac(UTF-8)変換 シュッとやる

2021/07/02に公開

諸事情があり、zipとかでコードをもらうことになったりします。
Windowsを利用している方からもらい、手元のMacでコードを見ると文字化けしますね。

nkfでシュッと変えたりするんですが、.gitも変わって「あ〜〜」みたいなことよくやります。

想定するのは以下のケースです。

  • current directory 以下のファイルを全てutf8に変換する

いい感じにしてくれるコード

find . -path ./.git -prune -o -type f -exec nkf -w --overwrite {} \;

一応

find . -path ./.git -prune -o -type f -print

-print つけてチェックしてからやりましょう。

概要

大きく分けて5つの部分から構成されます。

  1. findの利用宣言(?)
find .

current directory以下を指定してます。

  1. .gitを外す
-path ./.git -prune

pruneで.gitを外してやってます。
次の-oとも関係しますが、pathが「./.git」に合致したら、
trueを返し、以降その階層より下に潜りません。

  1. -oオプションの利用
-o

2 or 4の条件に当てはまるものを条件として利用します。

  1. .git以外のファイルの指定
-type f

.git以外のすべてのファイルを持ってきます。

  1. nkfの実行
-exec nkf -w --overwrite {} \;

nkfを実行します。
{} に持ってきたファイルが入るイメージですね。

Discussion