GNU bug report logs - #19899
deleting lines of a file with sed - unexpected behaviour

Previous Next

Package: sed;

Reported by: Ethan Kaufman <ethan.kaufman <at> gmail.com>

Date: Thu, 19 Feb 2015 00:59:02 UTC

Severity: normal

Done: Jim Meyering <jim <at> meyering.net>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ethan Kaufman <ethan.kaufman <at> gmail.com>
To: bug-sed <at> gnu.org
Subject: deleting lines of a file with sed - unexpected behaviour
Date: Wed, 18 Feb 2015 19:56:58 -0500
[Message part 1 (text/plain, inline)]
To whom it may concern,

I noticed something odd while fooling around with sed.  If you try to
remove multiple line intervals (by number) from a file, but any interval
specified later in the list is a subset of an interval earlier in the list,
then an additional single line is removed after the specified (larger)
interval.

seq 10 > foo.txt

sed '2,7d;3,6d' foo.txt
1
9
10

Expected output is:

1
8
9
10

Additional tests:

For each additional redundant interval, another line is removed:
sed '2,7d;3,6d;4,5d' foo.txt
1
10

Reversing the order of the intervals produces the expected result!
sed '3,6d;2,7d' foo.txt
1
8
9
10

Specifying the intervals with '-e' produces the same result:
sed -e '2,7d' -e '3,6d' foo.txt
1
9
10

Using different interval syntax has mixed results:
sed -e '/2/,/7/d' -e '/3/,/6/d' foo.txt
1
8
9
10
sed -e '2,7d' -e '/3/,/6/d' foo.txt
1
8
9
10
sed -e '/2/,/7/d' -e '3,6d' foo.txt
1
9
10

Trailing list must be a subset for the additional line to be removed:

sed '2,5d;1,5d'
1
8
9
10
sed '2,5d;2,6d'
1
8
9
10
sed '2,5d;2,5d'
1
9
10

Versions:

Breakage appears to have occurred in the 4.1 release.  See the expected
output for all cases in GNU sed 3.02 and 4.09 (as well as BSD sed (Mac OS X
10.2 Yosemite and /bin/sed on Solaris), but not in 4.15 and 4.21.

This issue and above information has been discussed on stack overflow:
stackoverflow.com/questions/28595574/deleting-lines-of-a-file-with-sed-unexpected-behaviour

Cheers,
Ethan
[Message part 2 (text/html, inline)]

This bug report was last modified 10 years and 20 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.