bug-sed
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#27354: strange behavior of sed


From: Assaf Gordon
Subject: bug#27354: strange behavior of sed
Date: Wed, 21 Jun 2017 20:18:59 +0000
User-agent: Mutt/1.5.23 (2014-03-12)

Hello,

On Tue, Jun 20, 2017 at 02:24:51PM +0800, Han Lu wrote:
But if I put 'i' command before 'd' command, shouldn't the input new lines
be deleted ? Since new inputed lines contain the pattern 'd' command want.

There is a subtlely in the 'i' (insert) command:
The added content is not stored in the pattern space and is
not subject to later manipulations (such as pattern matching, 's///'
and 'd').

The GNU sed manual says:

   i = Immediately output the lines of text which follow this command.

Observe the following:

   $ seq 3 | sed -e 1iX -e 's/X/Y/'
   X
   1
   2
   3

And similarly with match+delete command:

   $ seq 3 | sed -e 1iX -e '/X/d'
   X
   1
   2
   3


Similar subtlety also applies to 'a' (append) and 'c' (change) commands.

The manual should probably be improved to explicitly mention
these points (added to my mental 'todo' list).


regards,
- assaf








reply via email to

[Prev in Thread] Current Thread [Next in Thread]