How to ignore some differences in diff command? How to ignore some differences in diff command? bash bash

How to ignore some differences in diff command?


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)


Improving upon the earlier solution by John Kugelman:

diff <(sed 's/ab[XY]d/abd/g' file1) <(sed 's/ab[XY]d/abd/g' file2)

is probably what you may be looking for! This version normalizes the specific change on each line without deleting the line itself. This allows diff to show any other differences that remain on the line.


Assuming X and Y are single characters, then -I 'ab[XY]d' works fine for me.