A melhor solução é usar o comando join
:
join -j 2 -a 1 -e " " -o 1.1 2.1 1.2 File1.txt File2.txt
Não é a solução mais elegante, mas se você quiser aprender shell script, isso deve funcionar:
while read line1; do
file1_number=$(echo ${line1} | cut -d ' ' -f 1)
file1_date=$(echo ${line1} | cut -d ' ' -f 2)
line2=$(grep ${file1_date} File2.txt)
file2_number=$(echo ${line2} | cut -d ' ' -f 1)
if [[ -z "${file2_number}" ]]; then
file2_number=" "
fi
echo ${file1_number} "${file2_number}" ${file1_date}
done < File1.txt