$ sed -i '$w/dev/stdout;$d' testFile
    sed: couldn't open file /dev/stdout;$d: Permission denied
    $
Doesn't that resembles http://bugs.debian.org/620610 ?

  Regardless, I am not sure whether one, who is fluent in the sed 
language, should be able to predict the outcome of sed -i '$p'.  I mean,
where it is defined in which line would the content of the output will
appear in the file?

    $ sed -i '$p' testFile
    $ cat testFile
    1
    2
    2
    $

  Why it is not:
    2
    1
    2
?  In case you claim that with -i, the seek position of the input
and output files are expected to point to the same location,
subjected to possible previous operations in the script or script-file:
Was I supposed to deduce that from the manual?

--- On Fri, 11/11/11, Paolo Bonzini <bonz...@gnu.org> wrote:

> From: Paolo Bonzini <bonz...@gnu.org>
> Subject: Re: Bug#648344: sed -i '$p;$d' doesn't work
> To: "Regid Ichira" <regi...@yahoo.com>
> Cc: 648...@bugs.debian.org
> Date: Friday, November 11, 2011, 9:31 PM
> On 11/11/2011 10:28 PM, Regid Ichira
> wrote:
> >    I expected sed -i '$p;$d' to output the
> last line, 2 in this case;
> > and to delete that line from the file.
> 
> No, the output of "p" goes directly to the output file even
> with "sed -i".  You should use "$w/dev/stdout" instead
> of "$p".
> 
> Paolo
>



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to