HomePageJapanese RecentChanges Frequently Asked Questions English Espańol

ComparingTwoFiles

Sometimes it is useful to compare 2 files, to do this in awk, the trick is to first load the data from the first file into an array.

Let's say for instance that we have a list of first names in file1, one per line:

John
Mary

and a file2 with complete names:

John Smith
Mark Fo
Mary Bar

We want to find the names in file 2 corresponding to the first name in file1, this can be done in a compact manner like this:

awk 'FNR==NR {arr[$0];next} $1 in arr' file1 file2

Some explanations:

Note: For this example, join(1) is a working alternative.