GNU sed(Windows用)はUnicodeを処理できますか?もしそうなら、それはコードページ/ロケールの問題ですか、それともスイッチですか?


10

私はここ数年、GNU SEDをオンとオフで使用しています。それは時々私を少し回転させます、しかしそれは良い仕事をします...シングルバイト文字セットのために!
GNU SEDへの参照がUnicodeに対応していることに時々気づきますが、これに最も近いのはその「バイナリ」モードです。バイナリはUnicodeではありません。
GSEDは、特に\ r \ n(Windows)を含め、CodePoint解像度でUnicodeテキストファイルを処理できますか?可能であれば、UTF-8、UTF-16、または何を期待していますか?SEDはどのようにしてエンコードを検出しますか?


1
通常、Unicodeは\ uXXXXオプションで指定されます。この日本人の男のコンパイルを試してくださいsky.geocities.jp/hp_gabo200x/room_tool.html
Mikhail

回答:


1

私はsedについてはあまり知らないのですが、ハードグーグルの後で、環境変数LANGを通じてさまざまなコードページをサポートしているようです。LANGがない場合、UTF-8が実際のデフォルトであると思います。Windowsポートがどのように設定されているかはわかりません。sedが入力ストリームに対してまったく検出処理を実行しないという強い疑いがあります。

ソース:https : //stackoverflow.com/questions/67410/why-does-sed-fail-with-international-characters-and-how-to-fix http://omgili.com/mailinglist/cygwin/cygwin/com /20100520123926GA1432onderneming10xs4allnl.html

ここに述べたように、あなたはまた、エスケープ文字を試みることができる:http://forums.whirlpool.net.au/forum-replies-archive.cfm/841095.html それはしかし非常に面倒なようです。


@マシュー:ありがとう。問題はSED.exe自体にあるのではなく、Windows そのcmd.exeコンソールでコードページをうまく処理しないように見え始めています。多分それはそのPowerShellで動作しますが、そこに行かなければならない場合は、代わりにPythonに焦点を当てたいと思います。私の知る限り、Windows独自の誇りと喜びであるUTF-16(コードページ1200、msdn.microsoft.com / en- us / library / dd317756%28VS.85%29.aspx)は、管理対象アプリケーションでのみ利用できます、それが意味するものは何でも、確かにコンソールでは機能しません。UTF-8に変換して戻しますか?ありえない!Pythonが来ました。(または 'Nix and Bash)
Peter.O

私にはいいですね。私はcmd.exeが問題を引き起こしている方法とPythonがそれを解決する方法(Pythonのよく知られた魔法の力(xkcd.com/353)を除いて)を少し混乱していますが、気まぐれを理解するつもりはありませんcmd.exeの。頑張って!
ヴァネッサフィップス2010

@fred:読み取り:.NET。
Hello71、

2
私は問題を解決しました...約6か月前にMSを完全に削除し、Ubuntuを使用しています。それはシルクのように滑らかです...(そして私は振り返っていません...
Peter.O
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.