Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to ignore lines starting with a string with diff?

Tags:

unix

diff

How can I diff two files and ignore lines starting with a sequence.

E.g

File1:
abc
def
time:123

File2:
igh
def
time:345

With unix diff it will report

<time:123
>time:345

I want to ignore this diff. Any ideas?

like image 976
kal Avatar asked Apr 30 '10 19:04

kal


1 Answers

How about: diff -I '^time.*' file1 file2?

Please note it doesn't always work as expected as per diffutils manual:

However, -I only ignores the insertion or deletion of lines that contain the regular expression if every changed line in the hunk (every insertion and every deletion) matches the regular expression.

In other words, for each non-ignorable change, diff prints the complete set of changes in its vicinity, including the ignorable ones. You can specify more than one regular expression for lines to ignore by using more than one -I option. diff tries to match each line against each regular expression, starting with the last one given.

like image 66
nc3b Avatar answered Oct 24 '22 01:10

nc3b