Windows でUTF8 日本語を処理できる sed は未だ存在しないのでしょうか?
SJIS の日本語文章は正しく動作しますが、unicode のファイルの日本語処理は動作しません。
utf8 の入力ファイル、スクリプトファイル(.sed)を使用すると正しく動きません。
処理可能な sed はありますか?
例えば:
in.txt の内容 = 日本語,
script.sed 内容= s/日本語/jjjj/
の uft8 ファイル、とし、
sed -f script.sed in.txt > ot.txt
を実行 →エラー発生。
no such command as ・ソs/譌・譛ャ隱・jjjj/
と文字化け?。・ソ、ってゴミ?。 (日本語なしの script でも同一)
script.sed をSJIS とすると、エラーは出ないが、ot.txt は空。
(色々の sed で確認しましたが、onigsed での --ctype=utf8 指定も駄目でした。)
No.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% …
この回答への補足
さらに、補足しておきます。
debug script.sed でバイナリダンプを取り内容確認したら、
EF BB BF の頭が s/ の前についていた。
http://www.atmarkit.co.jp/fwin2k/win2ktips/775he …
ファイルの内容をバイナリ・ダンプで確認する。(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 を使用しないと出来ない。なぜなら <, >
記号は リダイレクション記号の予約記号だから。
有難うございます。当たりでした。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 って一体何なの。必要ないのでは??。そもそも何言ってんだか分からない文章で、ちょっと遺憾。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(プログラミング・Web制作) sedの動作 2 2022/10/10 13:38
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルVBAでメールの自動作成の モジュールを作ったのですが、txtファイルから読み込んだ本文が文 2 2022/07/20 15:01
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- その他(プログラミング・Web制作) sedの正規表現 1 2022/10/08 18:57
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- UNIX・Linux sedでの正規化 2 2022/05/10 11:39
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
sedで日本語の置換方法について
その他(プログラミング・Web制作)
-
sedやperlでの2バイト文字を含む変換
Perl
-
sedなどで、特定の文字列の後の文字列を抽出したい
その他(プログラミング・Web制作)
-
-
4
正規表現で全角数字を半角数字に置換する方法は?
その他(プログラミング・Web制作)
-
5
sed について GNU sed 4.1.2 と Sed LOGOS版のちがいをお教えください。
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
VBAでワークシートを引数として...
-
FTPのコマンド「mput」について
-
テキストファイルで提出とは?
-
C言語、ファイルの存在チェック...
-
テキストの保存
-
VBAでエクセルをtxtに変換する...
-
javaでemlファイルからtxtファ...
-
COPYコマンドで結合すると余計...
-
ファイルの最後に文字列挿入
-
【csh】ファイルの中の値を配列...
-
多数のサブディレクトリ内のフ...
-
テキストファイルのファイル名...
-
コマンドプロンプトでのファイ...
-
バッチファイルで文字列削除に...
-
エクセルの各セルの内容をそれ...
-
ハードディスク上書き用大容量...
-
VB6.0 でのテキストファイルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
バッチファイル 複数ファイル...
-
テキストファイルで提出とは?
-
バッチファイルで文字列削除に...
-
Windowsのバッチファイルを利用...
-
テキストファイルのファイル名...
-
ファイルの最後に文字列挿入
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
バッチファイルからVBAに引数を...
-
accessでSQL文を使ってcsvファ...
-
テキストファイルのタブをカン...
-
MATLABで行列を配列に格納する方法
-
renameコマンドについて
-
【Excel】 VBAを使って毎回名前...
おすすめ情報