Bruce.です。
Bunta さんは書きました (2005/04/24 15:27):
> mbsed --versionで4.1.2のまま?
そのようです。ミスりました。
> mbsedで0(ゼロ)レンジが効かない(これはonigsedも)
>
> mbsed -e "0,2d" NG
> onigsed -e "0,2d" NG
> egsed -e "0,2d" (GNU 英語のみ4.0.7) OK
>
> なんか僕は実験をまちがえていますのでしょうか?
> mbsed -e "0,2s/^/■/"でも挙動不審でした。→0レンジがいけない。
>
> 正確には分からないのですが、 "0,n" のようなアドレッシングは、GNU4 くら
> いからの拡張で、 "1,2d" では1行目の処理ができない、という点を改善したも
> のと理解しています。 もちろん、"0,2d" は、「1行目と2行目を削除」という
> 意味のはずです。
> あ、しっかり英語のwarningが出ていました。"invalid usage of line address 0"
> 確認したら、レンジ指定一般はいいようです。
ドキュメントを見ると以下のようになっています。
`0a' does not work (gives an error)
There is no line 0. 0 is a special address that is only used to
treat addresses like `0,/RE/' as active when the script starts: if
you write `1,/abc/d' and the first line includes the word `abc',
then that match would be ignored because address ranges must span
at least two lines (barring the end of the file); but what you
probably wanted is to delete every line up to the first one
including `abc', and this is obtained with `0,/abc/d'.
なんで、カンマの後には正規表現によるアドレス指定が来る必要が
あるようです。
ためしに
mbsed -e "0./abc/d"
とかやると、1と0のときで動作がきちんと変わります。4.0.7で分太さんの
いうように動作するというのはちと分かりませんが。
--
木村浩一
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
mail kbk@...
web www.kt.rim.or.jp/~kbk/index.html#zakkicho
homepage3.nifty.com/farstar/