藤岡さん
onigsedとmbsedのバグ出しにおつき合いください。疑って、いいものに成長させる
価値のある道具であることは間違いがないので。
> このスクリプトで、なぜデリミタの前を見ることができるのか説明していただ
> けますか。sedを思い出したいので^^)
そのスクリプトではありません。最初の発言をみてください。
【#2436からの引用】(変態なsedでなければ通じるはず)
===== test.sed =====
# デリミタ"---"の前が改行でないなら改行挿入
$!N
/^[^\n][^\n]*\n---$/{
s/\n/\
\
/
P
s/[^\n]*\n//
}
P
D
====================
そして、以下は
【#2437からの引用】
純粋に不具合発見用のテストをしました。
=====================
aaa
---
=====================
といった入力が
=====================
aaa
---
=====================
となれば正解のはずです。
------- test.sed -------
#egsed(GNU4.0.7), ssed, onigsed
$!N
/^aaa\n---$/{
s/\n/\n\n/
P
# s/aaa\n// # こうなら誤って2つ消しはしない
# s/[^\n]*\n// # これだと2つ消す
s/[^\n]\+\n// # これでも2つ消す
}
P
D
------------------------
これがバグ特定用(つもり)です。詰められていません。
> 昔のsedは、s/^---$/\n&/の書き方を許さなかったのです。
はい、
s/^---$/\
&/
でしょう、正統的には。アンサパンドがそこで通じるかは申し訳ありませんが
分かりませんけれど。
Bunta