Наверное, наоборот. ls по умолчанию сортирует по алфавиту. Её вывод надо пересортировать SEDом.
Вообще, даты сортировать сложнее, поэтому я за твой вариант
ls -lt | sed -E "s/^(total [0-9]+)$//;s/^(([^ ]+ +){8})(.*)/\3 \1/" | sort | sed -E "s/(.*)((( +[^ ]+){8} +))$/\3\1/"
Сортирует тут sort, а sed используется для того, чтобы перенести имена файлов в начало строки и вернуть их после сортировки в начальное положение.