Embora teoricamente possível, não há uma maneira mágica de fazer isso.
Se você soubesse exatamente qual valor você queria colocar depois de usar sed
pesquisa no local e substituir para inserir o novo valor no arquivo, mas, dadas as complexidades da classificação, basicamente se resume a você vai ter que classificá-lo em algum lugar a longo prazo.
echo fine-grained >> sorted.txt
sort sorted.txt > sorted.txt.new && mv sorted.txt{.new,}
Ou com sponge
:
{ echo fine-grained ; cat sorted.txt } | sort | sponge sorted.txt
Editar: Gilles fez uma boa sugestão para usar o argumento -m
para tipo potencialmente acelerar isso. Do manual:
-m, --merge merge already sorted files; do not sort
Isso manteria o processamento desde a entrada até o processamento, ele só precisa varrer os arquivos de entrada e descobrir a relação entre eles.
echo fine-grained | sort -m sorted.txt - | sponge sorted.txt