DaveMacMahon taught me I need seekstart(io) and truncate(io, position(io)) before TOML.print.
using TOML
using OrderedCollections
function sortfile(filename)
open(filename, "r+") do io
unordered = TOML.parse(io)
OrderedDict(unordered)
ordered = OrderedDict(sort!(collect(unordered), by=first))
seekstart(io)
truncate(io, position(io))
TOML.print(io, ordered)
end
end
# sort by keys
sortfile("sample.toml")