お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-03-29 15:00:22

miyamototakashi
新しいメンバ
登録日: 2011-03-29

sed で全角英数字を半角に変換する方法がわかりません

よろしくお願いします。

テキストファイルの中身に全角数字でデータが書かれています。これを、sedで全て半角にしたいのですが、うまくできません。次のようなコマンドを試みてみました。

sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/' orig.txt > new.txt

結果として、new.txtはできるのですが、中身の変換は行なわれず、もとのファイルの内容が同じままです。

解決法がわかりましたら、どうぞよろしくおねがいします。

オフライン

 

#2 2011-03-29 18:15:19

vbk
メンバ
From: Lake Hamana in Hamamatsu
登録日: 2009-12-22

Re: sed で全角英数字を半角に変換する方法がわかりません

元のファイルの文字コードはutf-8ですか?

自分の環境で確認したところutf-8では正しく動作し、shift-jisやeuc-jpでは正しく動作しませんでした。
テキストエディタで保存時に文字コードを指定できるので、保存しなおして試してみて下さい。
端末側の文字コードをファイルに合わせればうまくいきそうなのですが、やってみたところダメでした。

オフライン

 

#3 2011-03-29 21:19:18

miyamototakashi
新しいメンバ
登録日: 2011-03-29

Re: sed で全角英数字を半角に変換する方法がわかりません

さっそくありがとうございます。いただいたアドバイスにしたがって文字コードをチェックしなおしたところ解決いたしました。
もとのeuc-jpのファイルを、iconvで変換しておいたつもりだったのですが、それがうまくいっていなかったのが原因でした。

たいへんありがとうございました。急いでいたので非常にたすかりました。

オフライン

 

Board footer

Powered by FluxBB