Supondo que cada seção comece com o texto Millionaire
, você poderá fazer isso com vim
/ ex
- de forma interativa ou por script, por exemplo:
$ ex SashaMillionaire.md << 'EOF'
:g/^Millionaire$/+5,+8 sort
:1,$p
:q
EOF
Millionaire
123456788763237476
QUESTION|2402394827049882049
Who is the greatest Goddess in the world?
Саша
Валерия
Катя
Кристина
Саша
AuthorOfQuestion
Millionaire
459385734954395394
QUESTION|9845495845948594999
Where Sasha live?
Novgorod
Chistopol
Kazan
Novgorod
St. Petersburg
Another author
Millionaire
903034225025025568
QUESTION|ABC121980850540445C
Another question.
Katya
Chistopol
Katya
Kazan
Sasha
Unknown author
Para modificar o arquivo no local, substitua a instrução de impressão 1,$p
por w
ex SashaMillionaire.md << 'EOF'
:g/^Millionaire$/+5,+8 sort
:wq
EOF
ou, se preferir um one-liner em vez de um heredoc,
printf ':g/^Millionaire$/+5,+8 sort\nwq\n' | ex SashaMillionaire.md