Если ваши файлы содержат только одну точку данных (строку) каждый, что-нибудь столь же простое, как это, может сработать:
for x in *.dat ; do
echo $(< "$x") $x # print contents of file and add the filename
done | sort -nsk2,2 # stable sort by the second column.
Я тестировал быстро с сортировкой GNU, и на самом деле не видел проблем с единицами или десятичными знаками, но я не даю никаких гарантий.