人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

LinuxかWindowsでSJISのソースファイルを全部UTFに変換する方法。
フォルダ内をサブフォルダまで含めて全て且つ特定の拡張子のみという感じでやりたいです。

●質問者: kunitz
●カテゴリ:コンピュータ
✍キーワード:Linux SJIS Windows ソース ファイル
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● くまっぷす
●18ポイント

http://blog.livedoor.jp/nipotan/archives/2219057.html

一括文字コード変換 - にぽたん研究所

ここのblogに出てます。手元で確認できてないんで要テスト。ここの例は-eなんでEUCにしてますが、utf-8の場合だと確か-wですね。

(CentOSだとutf対応のnkfが乗ってると思いますが確認してください)

find . -name ’*.html’ | xargs nkf --overwrite -w

ですね。

http://namazu.org/~satoru/blog/archives/000041.html

いやなブログ: UTF-8 への移行計画

shellがzshなら

nkf -w --overwrite **/*.html.ja

も使えそうです。

◎質問者からの返答

ありがとうございます!

nkf


2 ● quintia
●18ポイント

http://www.vector.co.jp/soft/win95/util/se326595.html

サブフォルダまで含めて、しかも拡張子指定ができるツールって意外に無いものですね……。

URLのソフトとWindowsのエクスプローラの検索を併用してできると思います。

フォルダの右クリック検索から、*.java などで検索して、その結果を全選択してこのソフトにドラッグ&ドロップすればよいかと。

◎質問者からの返答

ありがとうございます!


3 ● divspan
●17ポイント

http://www01.tcp-ip.or.jp/~furukawa/nkf_utf8/

UTF-8 $BBP1~(B nkf (nkf_utf8)

Linuxでnkfとシェルスクリプトを組み合わせます

nkfは古い物だとUTFに対応していないので新しい物(最近のディストリビューションなら対応している物が入っているはず)を用意します。

以下の内容のファイルを用意します(~/toUTF.sh)

#!/bin/sh

for read in $*

do

cp $read $read.bak

nkf -w $read.bak > $read

done


用意できたら

$chmod u+x ~/toUTF.sh

等としてから

$ ~/toUTF.sh *.c

とすると、カレントディレクトリにあるファイル名が.cで終わるファイルの文字コードがが全部UTFになります。

サブフォルダまで含めて全部するならこちら

$ find -name ’*.c’ -exec ~/toUTF.sh ’{} ’ ’;’

(’は半角を用いてください)

ファイル名の末尾に.bakを付けたファイルを残すようにはしてありますが、試す前にバックアップをとることをお忘れ無く。

◎質問者からの返答

ありがとうございます!


4 ● mjy
●17ポイント

http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html

Manpage of FIND

find を使いましょう。


まず処理したいファイルのリストを得ます。

拡張子 ”txt” ならば、


$ find ./ -name ’*.txt’ -printf ’%p¥n’


これで正しければ、バックアップを取って置きましょう

# -printf で組み立てた cp コマンドを bash に渡し実行


$ find ./ -name ’*.txt’ -printf ’cp %p %p.sjis ¥n’ |bash


それでは本番

# -printf で組み立てた nkf コマンドを bash に渡し実行。

$ find ./ -name ’*.txt’ -printf ’nkf -w --overwrite %p¥n’ |bash

◎質問者からの返答

ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ