sed -i
Diomidis Spinellis
dds at aueb.gr
Fri Mar 30 17:31:17 UTC 2007
Yar Tikhiy wrote:
> May I take a bit more of your time?
>
> I've started playing with the code and noticed another gray area.
> Namely a `c' command won't print the text if having 2 addresses
> with the 2nd address beyond the actual end of file. For example:
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN
> $ jot 9 |
>> sed '6,15c\
>> text
>> ' test
> 1
> 2
> 3
> 4
> 5
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END
>
> Ditto with RE's, if the 2nd RE doesn't match any line:
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN
> $ jot 9 | sed '/6/,/15/c\
>> text
>> ' test
> 1
> 2
> 3
> 4
> 5
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END
>
> If we've started to delete the pattern space, we should print the
> text in place of it because `c' is for `change'. BSD and GNU seds
> have this bug, but Solaris sed doesn't have it. Do you think we
> should fix it, too?
>
> Thanks!
>
Yes, it sounds like a bug to me. Note that a couple of weeks ago I
added the regression tests I originally wrote in 1992 to the FreeBSD
regression test suite. Given that you are writing test cases it would
be very nice to follow the format used in
src/tools/regression/usr.bin/sed/regress.t, so that we can add them to
the test suite.
Diomidis
More information about the freebsd-hackers
mailing list