以下の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