Вот один из способов сделать это, используя python.
Код:
import sys columns = [] data = {} ids = set() for filename in sys.argv[1:]: with open(filename, 'rU') as f: key = next(f).strip().split()[1] columns.append(key) data[key] = {} for line in f: if line.strip(): id, value = line.strip().split() try: data[key][int(id)] = value except ValueError as exc: raise ValueError( "Problem in line: '{}' '{}' '{}'".format( id, value, line.rstrip())) ids.add(int(id)) print('\t'.join(['ID'] + columns)) for id in sorted(ids): line = [] for column in columns: line.append(data[column].get(id, '0')) print('\t'.join([str(id)] + line))
Результаты:
ID Value1 Value2 Value150 1 40 0 0 2 30 0 71 3 70 50 0 4 0 70 0 9 0 20 98 10 0 0 52