GNU sed with Oniguruma (Onigsed)とは?

正規表現エンジンとして、 鬼車を組み込んだ sed です。オプション指定により、POSIX EREや Perl5互換の正規表現を使うことができます。

ダウンロードリンク

以下、readme.jaより。

・これはなに?
GNU sed 4.1.5 の日本語 Windowsへの移植(というほどたいしたことは
していない)です。cygwinに付属のGNU sedがMBCS対応していないので
作業しました。VC++ 7.1でコンパイルしています。特にDLLは必要あり
ません。また、正規表現エンジンとして鬼車(2.5.0)を組み込んでおり、
オプション指定によりPerl互換の正規表現を使うことができます。で
きるだけオリジナルと同じ振る舞いをするように努力しましたが、
どこかに抜けがあるかもしれません(特に改行の扱いに関して)。

・ソースコードについて
以前はアーカイブに差分パッチを含めていましたが、現在は含めていません。
これは変更したソースコードの公開をしないということではなく、求めが
あればその時点での最新のソースコード一式をお渡しする用意があります。
また、どこか適当な場所にsvnなりcvsなりのリポジトリ(別にそのほかの
SCMでもいいですが)が持つことができないか検討中です(お勧めの場所があれ
ば教えてください)。


・再配布について
GNU sed はフリーソフトウェアです。COPYINGというファイルに記載
されている条件に従って自由に再配布することができます。

新設されたオプション:
漢字コードとしてshiftjis、euc-jp、utf-8 が使えます。使用するときは
コマンドラインオプションで

 ・shiftjis -Wctype=SJJIS または --ctype=SJIS (デフォルト)
 ・euc-jp   -Wctype=EUC   または --ctype=EUC
 ・utf-8    -Wctype=UTF8  または --ctype=UTF8

を指定します。マルチバイト処理をオフにしたい場合には

   -Wctype=ASCII または --ctype=ASCII

を指定します。

拡張された機能:
環境変数 SEDPATH にディレクトリパスを指定することにより、スクリ
プトを検索するパスを指定することができます。ディレクトリはセミ
コロンで区切ることにより複数指定することができます。なお、SEDPATH
を指定した場合、カレントディレクトリは検索パスにない限り検索の
対象としませんので注意してください。

おまけ パッチの使い方:
添付したmbc-diffというファイルは GNU sed 4.1.4に対する差分ファイル
です。自分でコンパイルするには、

  1) オリジナルを展開する
  2) ソースのlibディレクトリに cd する
  3) regex_h を regex.h にコピーする
  4) ソースのベースディレクトリ(sed-4.1.2)で patch < mbc-diff を実行
     する。
  5) sed ディレクトリに cd する
  6) make

とします。

変更履歴:
2004年11月17日
とりあえずVC++でコンパイルできるようにしてみた。
2004年11月22日
環境変数SEDFILEを参照するように拡張。
2004年11月24日
参照する環境変数をSEDFILEからSEDPATHに変更。
2004年12月22日
正規表現エンジンとして鬼車を組み込む。
2004年12月28日
Perl互換正規表現使用時 \d が十進数字にマッチしていなかったのをfix。
2005年1月7日
POSIX BREを受け付けていなかったのをfix。
2005年5月19日
s/コンピューター/コンピュータ/ などがエラーになっていたのをfix。
s/USSR/ソ連/ などで文字化けしていたのをfix。
2005年5月31日
POSIX BREを受け付けないバグが復活していたのを再度fix。
ベースをGNU sed 4.1.4に変更。
2005年8月5日
UTF-8の取り扱いにバグがあったのでfix。
2005年8月22日
スクリプトの指定をフルパスで行ったときにオープンに失敗するバグをfix。
2005年12月20日
拡張POSIXクラス[:zenupper:]が誤動作していたのをfix(鬼車バージョンは変更なし)。
2007年4月7日
鬼車を組み込んでいないほうのバージョンで、GNU拡張のメタ文字(\< \>, \b \B)が
--ctype=ASCII以外のときに正しく動作していなかったのをfix。
2007年7月13日
マルチバイト環境のときに、文字クラスの判定を間違えることがあったオリジナルの
バグを修正。
2009年1月1日
正規表現で文字クラスを使ったときに']' の解釈が本来の仕様どおりでなかった部分を
修正。
2009年5月25日
正規表現の文字クラスの動作がおかしかったのをfix。

ホームページへ