Se o arquivo não for muito grande, você pode fazer isso com o GNU awk
:
{
count = split($1, arr, "");
key = ""
for (i = 1; i <= count; i++) {
key = arr[i] key;
}
lines[key] = $0;
}
END {
count = asort(lines);
for (i = 1; i <= count; i++) {
print lines[i];
}
}