- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Unicode 対応の sed って無いのですか?)
Unicode対応のsedが存在するのか?
このQ&Aのポイント
- WindowsでUTF8日本語を処理できるsedは未だ存在しないのか?
- SJISの日本語文章は正しく動作するが、Unicodeのファイルの日本語処理は動作しない。
- UTF8の入力ファイル、スクリプトファイル(.sed)を使用すると正しく動作しない。sedを処理可能なものは存在するのか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
in.txt,script.sedを書くのに、どんなエディタを使いましたか? おそらくは、BOMの問題です。 「BOM無し」とか「UTF-8N」とか(「UTF-8(BOM有り)」に対しての)「UTF-8」とかのエンコードが選べるテキストエディタを使ってみてください。 http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88%E3%82%AA%E3%83%BC%E3%83%80%E3%83%BC%E3%83%9E%E3%83%BC%E3%82%AF
お礼
有難うございます。当たりでした。Bom 無し script.sed に変更したら、正常動作しました。 ご参考(復習): sed は、Logos sed (ミドリノセロー氏、1991年版 ---古い!)使用 script.sed は MS メモ帳で作成(保存時の文字コード(E):UFT-8) です。 まず、下記 UTF-8(BOMなし)で保存出来るエディター http://msweb.moo.jp/tool/223/ で紹介されている online editor - Multilingual Editor http://multilingual-editor.sugutsukaeru.jp/ja/ にかまして、BOM 無しの script_nobom.sed 入手。 sed -f script_nobom.sed in.txt > ot.txt cannot open command-file script_nobom.sed だって。8.3制限 に抵触(ボロ)。--- 名前を8文字以内に変えて、リトライ。 sed -f script_n.sed in.txt > ot.txt →成功。 ot.txt も jjjj に変わっていた。 ------ 感謝・感謝。 本当に有難う。でも、この辺のこと余り世の中に書いてありませんね。良くない、ですネ。 onigsed って一体何なの。必要ないのでは??。そもそも何言ってんだか分からない文章で、ちょっと遺憾。
補足
さらに、補足しておきます。 debug script.sed でバイナリダンプを取り内容確認したら、 EF BB BF の頭が s/ の前についていた。 http://www.atmarkit.co.jp/fwin2k/win2ktips/775hexdump/hexdump.html ファイルの内容をバイナリ・ダンプで確認する。(d コマンドと、q コマンド使用) ------------------ 尚、BOM 削除は、次の、onigsed (2009 年版)の 16進コード指定の置換で可能だった。 onigsed "s/\xef\xbb\xbf//" script.sed > no_bom.sed (1) (onigsed "s/^\xef\xbb\xbf//" script.sed > no_bom.sed も可) ------------------ Onigsed の場合、in.txt が UTF8 の場合、--ctype=UTF8 指定が必須だった。 --ctype=UTF8 指定をしないと、エラーなしの空振りだった。 Logos sed の方が --ctype=UTF8 指定など不要なので操作性は良い。 (入力 file と .sed file の encode を同じ色にしておけばいいだけ) ---------------- 尚、Logos sed では、小なり記号 <、大なり記号 >、を指定した操作(ex. html ファイルの tag 指定の操作等)は、.sed script file を使用しないと出来ない。なぜなら <, > 記号は リダイレクション記号の予約記号だから。