Sou cego ou não existe uma opção --in-placepara isso sort?
Para salvar os resultados no arquivo de entrada, sed usa -i( --in-place).
Redirecionando a saída sortpara o arquivo de entrada
sort < f > f
resulta em torná-lo vazio. Se não houver --in-placeopção - talvez haja algum truque para fazer isso de maneira prática ?
(A única coisa que me vem à cabeça:
sort < f > /tmp/f$$ ; cat /tmp/f$$ > f ; rm /tmp/f$$
Mover não é a escolha certa, pois as permissões do arquivo podem ser alteradas. É por isso que sobrescrevo o conteúdo do arquivo temporário que removo.)
sort.
insitu, permitindo que qualquer comando seja usado no local.