GNU bug report logs -
#18076
Lines are not ignored by option -I if they are followed by a line with a difference
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Tue, 22 Jul 2014 10:58:58 -0600
with message-id <53CE9852.9090505 <at> redhat.com>
and subject line Re: [bug-diffutils] bug#18076: Lines are not ignored by option -I if they are followed by a line with a difference
has caused the debbugs.gnu.org bug report #18076,
regarding Lines are not ignored by option -I if they are followed by a line with a difference
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
18076: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18076
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Package: diffutils
Version: 3.3
When 2 (or more) consecutive lines are different between the two compared
files, they are ignored by option -I if all of them are ignored; if the
last line is not ignored, all the lines are returned by diff tool (instead
of only the last line).
Although the documentation clearly indicates this as nominal, it looks
strange while looking at the results to have lines that we supposed to have
been ignored.
------------------
To reproduce:
1. Create 2 files (e.g. File1.txt and File2.txt) having 2 consecutive
different lines (e.g. lines 2 and 3)
2. Run diff with option -I including a pattern matching line 2
3. Observe that diff returns differences for both lines 2 and 3
Note: the files attached could be used as an example with the command line
diff -I "^IGNORE:.*quot; File1.txt File2.txt
The difference is as follows:
2,3c2,3
< IGNORE: Line to be ignored with value = 1
< Different line (version A)
---
> IGNORE: Line to be ignored with value = 2
> Different line (version B)
Jean-Francois Thuong
------------------------------
[signature removed by request]
[Message part 4 (text/html, inline)]
[File1.txt (text/plain, attachment)]
[File2.txt (text/plain, attachment)]
[Message part 7 (message/rfc822, inline)]
[Message part 8 (text/plain, inline)]
tag 18076 notabug
thanks
On 07/22/2014 12:59 AM, Jean-Francois Thuong wrote:
> To reproduce:
> 1. Create 2 files (e.g. File1.txt and File2.txt) having 2 consecutive
> different lines (e.g. lines 2 and 3)
> 2. Run diff with option -I including a pattern matching line 2
> 3. Observe that diff returns differences for both lines 2 and 3
Thanks for the report. However, this is not a bug, but documented
behavior. -I only suppresses entire hunks where EVERY difference in the
hunk matches the regex.
The mode of operation you are requesting, where diff ignores lines that
match the regex prior to doing the comparison (although line numbers are
then a bit off), can be accomplished via this trick in bash:
patt='^IGNORE:'
diff <(sed "/$patt/d" File1.txt) <(sed "/$patt/d" File2.txt)
Maybe it's worth a new option to diff to allow this mode of operation by
default (and so that line numbers are still accurate); but -I cannot be
changed semantics to match that new option.
I'm closing this report as we are matching our documentation, although
we can reopen it if someone is interested in writing a patch for such a
new option.
> *The information transmitted is intended only for the person or entity to
Sorry, but such disclaimers are unenforceable on publicly-archived
mailing lists. You may want to consider sending from a personal account
in the future, rather than slamming the list with your employer's
legalese spam.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
This bug report was last modified 10 years and 304 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.