• ベストアンサー

nkfで全ファイルを変換する

ネットで配布されているサンプルのJavaのソースコードが あるのですが、それが全部EUCではないので、EUCに 変換したいのです。 aというディレクトリの中に01から16、Rensyu というディレクトリがありその各々のディレクトリの 中に.javaとついたサンプルコードが入っています。 これをいっぺんに変換するのに nkf -e * > sample などとすると一つのファイルに全部変換後の ファイルがかかれてしまうので、 たとえばSampele1.javaだったらそれと同じ 名前のファイルに書き出すか、また Sample1_e.java というファイルに書き出したいです。 どうしたらいいでしょうか?おねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.3

>nkf -e -OW * >と実行しましたが、何もファイルの中身は >変わっていません。 manコマンドで、nkfの使い方を確認してみてください。 -OWの説明がない場合は、残念ながら上書きモードをサポート していないnkfですので、#2さんのスクリプトなどで変換して ください。 ちなみに、RedHat9のnkfコマンドは上書きモードをサポート しています。 # man nkf -O ファイルに出力する。Unixでは不要な機能だがWindowsやMSDOS   では必要らしい。直後の引き数でなく、最後のファイル名が 出   力 ファイル名となり上書きされてしまうので注意。ファイル名   がない場合は、 nkf.out。-OW では、元のファイルを変換結果   で置き換える。複数のファイルを書き換えることも可能。

Judau_MSZ-010
質問者

お礼

ありがとうございます。

その他の回答 (2)

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

#!/bin/sh for file in `find . -name "*.java"` do newfile=`echo $file | sed s/.java/_e.java/` nkf -e $file > $newfile done

Judau_MSZ-010
質問者

お礼

ありがとうございます。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

上書きオプション(-OW)のあるnkfコマンドなら簡単です。 http://www.idg.co.jp/lw/weekly_1/031117/

Judau_MSZ-010
質問者

お礼

ありがとうございます。

Judau_MSZ-010
質問者

補足

nkf -e -OW * と実行しましたが、何もファイルの中身は 変わっていません。文字化けしたまんまです。 お願いします。

関連するQ&A

  • UNIX上で文字コードの一括変換はできますか?

    UNIX上で、文字コードを変換したいのですが、今まではSJISからEUCといった変換にnkfを使用してきましたが、nkfだと1ファイル毎でしか文字コードを変換できませんでした。1行のコマンドでそのディレクトリ内の全てのファイルの文字コードを変換してくれるコマンドはありますでしょうか? UNIX上で実現できれば、Perlでもなんでも結構です。よろしくお願いします。

  • nkfのバッチファイル

    親ディレクトリ以下のすべてのテキストファイルの文字コードをutf-8に変えようと思い、以下の内容のバッチファイルを作りました(nkf32.exeはバッチファイルと同ディレクトリに置いています)。Cドライブ(デスクトップ)上で実行したところ、問題なく動いたのですが、USBメモリ(Dドライブ)に置いて実行するとうまく動きません。ご教示お願いします。 >test.bat for /R .. %%i in (*.txt) do ( nkf32.exe -w8 --overwrite %%i )

  • 文字コードの変換方法

    お世話になります。 サーバ上で生成した、文字コードがEUCのテキストファイルをSJISに文字コードを変換したいのですが、nkfコマンドが使用できません。 nkfコマンドを使用せず、EUC⇒SJISへ文字コードを変換する方法をご教示頂けますでしょうか。 また文字コードを変更すれば改行コードの変更はしなくてもいいのでしょうか。 宜しくお願い致します。

  • windowsXP --> FedoraCore1 漢字変換について

    SJISのtextファイルを、メールに添え付けて、 Linuxに送って、nkfでEUCに変換しようとしたところ うまくいきません。 nkf -e sjis.txt これでは、うまくいきませんでした。 nkf -unix sjis.txt これでは、標準出力ですが、うまく変換できています。 それで、 nkf -unix sjis.txt >/tmp/a.txt を、実行したところ、出力ファイルの中は、 変換できていませんでした。 sjis.txtは、windowsのメモ帳で、 "あいうえお"と、書いただけです。 よろしくお願いいたします。

  • 文字コード変換の件( nkf -w8 と iconv )

    nkfでのオプション:w8に該当するiconvのパラメータをご存知のかたは教えていただきたいと思います。 nkf -w8での変換結果はファイル先頭3バイトにiconvでの変換結果と異なるコードが付いているようです。 iconvにて次のパラメータは試しましたが、いずれもファイル先頭3バイトが nkf -w8の結果とは異なっています。 UTF-8 UTF-16 UTF-16BE UTF-16LE UNICODE なお、versionなどは関係ないとは思いますがfedora-10-preview環境です。

  • 文字コード変換について

    お世話になります。フォームのデータをcsvファイルで 蓄積するcgiを作成しました。csvファイルはeucコード で保存されています。このcsvファイルを、nkfコマン ドみたいに、s-jisコード変換して別ファイルを作成することは出来るのでしょうか?よろしくお願いいたし ます。 環境 OS redhat9

    • ベストアンサー
    • CGI
  • ファイル名のコード変換

    vinelinux3.2から無線LANカードの関係で、kernel2.6をどうしても使いたく、fedra core5に変えました。 快適に動作するのですが、過去作成したファイルが、EUCからunicodeに変わった結果、ファイル名が文字化けしてしまい、読めなくなってしまいました。 ファイルの中身は、nkf等の変換ツールで変換できますが、ファイル名をEUCからunicode(UTF-8)に変換する方法はないでしょか? 日本語のファイル名を使うほうが悪いという、ご指摘は重々にわかりますが、ワークステーションとして利用していたので、日本語のファイル名も使います。 また、unicodeからEUCに変更すれば?と言われそうですが、この機会に、unicodeに変更したいと思います。 よろしくお願いいたします。

  • 文字コードの混在しているファイルの変換

    webのログを取っているのですが, URLデコード -> nkf -s としています.しかし,URLデコードしたファイルは,google等はutf-8で他はs-jis等で,文字コード(s-jis, euc, utf-8)が混在しているファイルとなってしまいます. 最終的な出力ファイルをs-jisに統一したいと思っています.nkfで行おうとしたところ,どうもうまくいきません.-Xs オプションをつけるとutf-8の部分がちゃんと表示されません.-Wsオプションをつけると今度はs-jis,eucが出力されません. なにかうまい方法はありませんか?

  • man nkfの文字化け

    Cygwinでman nkfすると文字化けするので、直し方を教えて下さい。 最新のnkf-2.1.4.tar.gzを使っています: $ man nkf nkf(1) NAME nkf - $B%M%C%H%o!<%/MQ4A;z%3!<%IJQ49%U%#%k%?(B SYNOPSIS nkf [-butjnesliohrTVvwWJESZxXFfmMBOcdILg] [file ...] DESCRIPTION nkf $B$O%M%C%H%o!<%/$G%a!<%k$d%K%e!<%9$NFI$_=q$-$r$9$k$?$a$K:n$i$l$?!"4A;z%3!<%I$NJQ49%U%#%k%?$G$"$k!#(B http://qiita.com/Takeru/items/1694653253a9bf038b47を参考にnkf.1jを変換してみました: 変換前: $ cat nkf.1j | grep -A7 ".SH \"NAME\"" .SH "NAME" nkf \- %M%C%H%o!<%/MQ4A;z%3!<%IJQ49%U%#%k%? .SH "SYNOPSIS" .IX Header "SYNOPSIS" nkf \fB[\-butjnesliohrTVvwWJESZxXFfmMBOcdILg]\fR \fB[\fR\fIfile ...\fR\fB]\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBnkf\fR $O%M%C%H%o!<%/$G%a!<%k$d%K%e!<%9$NFI$_=q$-$r$9$k$?$a$K:n$i$l$?!"4A;z%3!<%I$NJQ49%U%#%k%?$G$"$k!# 変換後: $ cat nkf.1j | nkf -w8 | grep -A7 ".SH \"NAME\"" .SH "NAME" nkf \- ネットワーク用漢字コード変換フィルタ .SH "SYNOPSIS" .IX Header "SYNOPSIS" nkf \fB[\-butjnesliohrTVvwWJESZxXFfmMBOcdILg]\fR \fB[\fR\fIfile ...\fR\fB]\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBnkf\fR はネットワークでメールやニュースの読み書きをするために作られた、漢字コードの変換フィルタである。 ・・・ここまではうまくいってそうですが、 cp -p nkf.1j nkf_Org.1j とバックアップを取って、 cat nkf_Org.1j | nkf -w8 > nkf.1j と上書きしても文字化けしたままです: $ man nkf nkf(1) NAME nkf - $B%M%C%H%o!<%/MQ4A;z%3!<%IJQ49%U%#%k%?(B SYNOPSIS nkf [-butjnesliohrTVvwWJESZxXFfmMBOcdILg] [file ...] DESCRIPTION nkf $B$O%M%C%H%o!<%/$G%a!<%k$d%K%e!<%9$NFI$_=q$-$r$9$k$?$a$K:n$i$l$?!"4A;z%3!<%I$NJQ49%U%#%k%?$G$"$k!#(B (jが付かない)nkf.1は英語用でしょうか? nkf.1に上書きしたり、nkf.1自身を変換したりしましたが、どれも文字化けしたままです。 他に何か試せることはありますか? 他の方はどうされているのでしょうか?

  • ディレクトリ毎、文字コード変換できるツールはありますか?

    ディレクトリ毎に、Shift_JIS⇔EUCで文字コード変換 できるおすすめなツールはありますか? なかなか良いのがなくて。。 テキストエディタでファイルを1つずつ開いて 変換してるのですが100個もあると結構大変です。