This isn't complex if you think about it and take is stage by stage.
Read each file into a string:
string data = File.ReadAllText(pathToFile);
Break that into individual segments to compare:
string[] bits = data.Split(' ', '\n');
If you add each of these to a collection, you can later use a loop to compare them:
List<string[]> toCompare = new List<string[]>();
...
toCompare.Add(bits);
And the loop is pretty simple:
string[] soFar = toCompare[0];
for (int i = 1; i < toCompare.Count; i++)
{
soFar = soFar.Intersect(toCompare[i]).ToArray();
if (soFar.Count() == 0) break;
}
The Linq Intersect method returns all the common values in the two collections.