linuxbashdiffvimdiff

How can I ignore some differences in the 'diff' command?


diff has an option, -I regexp, which ignores changes that just insert or delete lines that match the given regular expression. I need an analogue of this for the case, when changes are between two lines (rather than insert or delete lines).

For instance, I want to ignore all differences like between "abXd" and "abYd", for given X and Y.

It seems diff doesn't have any such kind of ability. Is there a suitable alternative for diff?


Solution

  • You could filter the two files through sed to eliminate the lines you don't care about. The general pattern is /regex1/,/regex2/ d to delete anything between lines matching two regexes. For example:

    diff <(sed '/abXd/,/abYd/d' file1) <(sed '/abXd/,/abYd/d' file2)