作者: Bunta
日時: 2008/8/28(02:31)
 以下の7種類のsedで試しました。うーん、何とかonigsedに頑張って
もらえないのか、それが無理なら、「\n」に関して仕様が違う点をお教え
いただけないだろうか、ということなのです。

---------------------------------------------
>>>Japanese MS-Dos versions (16 bit)
1988 03 02  06:11            15,366 SED.EXE     (1)
serow版

1992 06 17  11:00            25,108 LSED.EXE    (2)
Logos版
---------------------------------------------
>>>English (original) GNU, and something more ...
2003 05 17  02:29            86,016 egsed.exe   (3)
GNU sed version 4.0.7

2005 02 11  11:14            98,816 SSED.EXE    (4)
super-sed version 3.62
based on GNU sed version 4.1
---------------------------------------------
>>>Japanese 32 bit versions:
1999 06 20  12:41            99,854 GSED3.EXE   (5)
GNU sed version 3.02 + multi-byte extension 1.07

2005 08 24  06:21           151,552 mbsed.exe   (6)
GNU sed version 4.1.4
Modified for Win32 Japanese by moonlight-mile@...
Build date is Aug 23 2005

2005 08 24  06:32           311,296 onigsed.exe (7)
GNU sed version 4.1.4 with Oniguruma(2.4.2)
Modified for Win32 Japanese by moonlight-mile@...
Build date is Aug 23 2005
---------------------------------------------

--- test.txt ----------
aaa
---
bbb
---
--- end of test.txt ---

--- test.sed ----------
# デリミタ"---"の前が改行でないなら改行挿入
$!N
/^[^\n][^\n]*\n---$/{
        s/\n/\
\
/
        P
        s/[^\n]*\n//
                }
P
D
--- end of test.sed ---

>(l|eg|s|g|mb|onig)sed3* -f test.sed test.txt
(各種のsed.exeを試しただけです)

で、正しい(つもりの)以下が出なかったのは、
OnigsedとGSED3でした。何が違うのかお分かりの方はお教えいただけ
ないでしょうか。XP環境ではOnigsedをメインに使いたいので、何も変更され
ない結果が出たときには、小さなショックを受けました。最低限の表現のつもり
だったのです。BREそのままのつもりだったのですが…。

--- desired output ---
aaa

---
bbb

---
--- end of desired op-

Bunta