Команда sort
используется для сортировки файлов по строкам, она не предназначена для сортировки содержимого строки. Невозможно сделать сортировку делать то, что вы хотите, но это будет немного грязно и, вероятно, неэффективно.
Я бы это сделал в Python, но так как вы может не иметь Python, вот короткая команда awk, которая делает то, что вы хотите.
awk '{split(substr($0,1,4),a,"");n=asort(a);s="";for(i=1;i<=n;i++)s=s a[i];print s}'
Просто введите имя файла (или файлов), который вы хотите обработать в конце командной строки.
Вот некоторые данные, которые я использовал, чтобы проверить команду: Данные
this
is a
simple
test file
a
of
apple
banana
cat
uoiea
bye
А вот выходного
hist
ais
imps
estt
a
fo
alpp
aabn
act
eiou
bey
Вот некрасиво Python один лайнер; это будет выглядеть немного лучше в качестве надлежащего сценария, а не как команда Bash строки:
python -c "import sys;print('\n'.join([''.join(sorted(s[:4])) for s in open(sys.argv[1]).read().splitlines()]))"
В отличие от версии AWK, эта команда может обрабатывать только один файл, и он читает весь файл в ОЗУ обрабатывать его, а не обрабатывать его по очереди.
Что находится в файле simple_file.txt? –