こんにちは。きんくまです。
Terminalで文字コード変換のシェルスクリプトです。
同じフォルダにencodedというサブフォルダを作って、
そこに、変換後のファイルが保存されます。
今回は、SJIS から UTF-8に変換します。
sjisToUtf8
#!/bin/sh mkdir encoded for fname in "$@" do iconv -f SJIS -t UTF-8 "$fname" > "encoded/$fname" done
iconvが文字コード変換のコマンドです。
-f は from(変換前) -t は to (変換後)のオプションです。
man iconvと打つとマニュアルが出てくるので、調べてみると良いかもしれません。
さて、実行に向けての準備です。
例えば、今回はさきほどのテキストをsjisToUtf8という名前で保存しました。
どこに置いてもいいのですが、
/usr/local/bin
に置いておくと、いつでもコマンドを呼び出せるので便利です。
そこに置いたあと、実行権をつけておきます。
ファイルを移動(finder上でもOK)
mv sjisToUtf8 /usr/local/bin/
実行権をつける
chmod a+x /usr/local/bin/sjisToUtf8
ここで一度terminalをログアウトしてもう一回開くと、sjisToUtf8がコマンドとして認識されます。
で、ここから変換したいディレクトリに移動した後に、以下のコマンドを打つと
hello.cというファイルが./encoded/hello.cという名前でShiftJISからUTF8に変換されて保存されます。
sjisToUtf8 hello.c
複数ファイルも指定できます。
この場合は拡張子がcのファイルが全て変換されます。
sjisToUtf8 *.c
一度コマンドを実行すると、encodedフォルダができてしまうので、
再度コマンドを実行すると「そのフォルダはすでにありますぜ」という警告が出るのですが、
特に問題なさそうなので、無視しました、、。
encodedフォルダが存在するかどうかのif文を作らなきゃならないのですが、
どうやるかわかりません、、。すみません。
もし、他の文字コードを希望する場合はterminal上で
iconv -l
を打てば、文字コードリストが出るので、スクリプトの該当部分を変えれば大丈夫です。
terminalでこうしたちょっとしたツールが使えるのは便利ですね。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ