cat file1 file2 | perl -e 'while(<>){ /^((\d+\.){3}\d+)(.*)$/ and $c{ $1 } = $1 . $2; } print values %c; ' | sort > file3;