- ベストアンサー
sedで日本語の置換方法について
sedを使い文字の置換を行いたいのですが、日本語(全角文字)の置換がうまくいきません。 たとえば[a]から[i]に変換することはできるのですが、[あ]から[い]にはうまく変換できません。 どなたかわかる方、変換する方法はありますでしょうか?あればその方法を教えてください。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 >回答してくださってありがとうございます。 >このコマンドを実行しても日本語の変換は行えませんでした。 こちらの環境では、変換できました。 D:\downloads\tools\sed_118d>type my.txt ありがとうございます abcdefg おおああ漢字 いいいい -----------以上は変更前のテキスト---- D:\downloads\tools\sed_118d>sed --ctype=sjis s/あ/い/g my.txt いりがとうございます abcdefg おおいい漢字 いいいい -------------上記が実行結果------- 確認ですが、 1.#2の参考URLのSEDを使用しましたか? 2.実際に打ち込んだコマンドは、どのようなコマンドですか。 3.変更前のテキストの漢字コードはシフトJISですね。 この漢字コードが、異なると変換出来るはずがありませんので、念のため為。 4.変更前のテキストが、もし、提示できるなら提示して下さい。 以上、補足して下さい。
その他の回答 (3)
- MASA_H
- ベストアンサー率42% (64/151)
いくらなんでも1.xは古すぎると思われるので参考URLのものを使うか、Cygwinのものを使うかしたらどうでしょうか。
お礼
早速参考URLのものを使ってやってみましたがやはり日本語の変換が出来ませんでした。
- tatsu99
- ベストアンサー率52% (391/751)
参考URLのSEDを使用しているなら、漢字に対応しています。(SJIS,EUC) たぶん、SIJISだと思いますので、起動時に以下のオプションをセットして下さい。 --ctype=SJIS これで、変換できないでしょうか? 以上は、README.3RDに記述されています。
お礼
回答してくださってありがとうございます。 このコマンドを実行しても日本語の変換は行えませんでした。
- MASA_H
- ベストアンサー率42% (64/151)
どのsedをどのOS上でどの文字コードの置換を実行したら出来なかったのですか? ちなみに"GNU sed 4.1.5"の場合、 $ echo $LANG ja_JP.UTF-8 $ echo "あいうえお"|sed 's/あ/い/' いいうえお と日本語も置換できます。
お礼
早速の回答ありがとうございます。情報不足ですみませんでした。 OSはWindowsXPを使用していまして、sedのバージョンは「GNU sed version 1.18」です。 できればWindowsでやりたいのですができますでしょうか?
お礼
この手順の通り確認してみたところ、テキストファイルが文字化けしていたためにうまくできなかったみたいです。 テキストファイルをshift-JISに直したらできました! ありがとうございました!