Acho que o que você procura é algo assim:
Método 1: usando head & cauda
$ (head -n 2 sample.txt; tail -n +3 sample.txt | sort -t' ' -nk2) > a.tmp && mv a.tmp sample.txt
Nome Note
------------
Mehdi 0
Shnou 5
Others 10
Sunday 20
Isso pega a primeira linha do arquivo de texto, depois coroa tudo depois das duas primeiras linhas, que depois são classificadas.
Método # 2: apenas usando a cabeça
$ (head -n 2; sort -t' ' -nk2) < sample.txt > a.tmp && mv a.tmp sample.txt
Nome Note
------------
Mehdi 0
Shnou 5
Others 10
Sunday 20
Pega o arquivo de texto como entrada, exibe apenas a primeira linha, classifica o restante.
Normalmente, não é uma boa ideia editar arquivos no lugar. É possível, mas é melhor usar um arquivo intermediário.
Método # 3: Fazendo # 2 sem um arquivo intermediário
Roubando a ideia de @StephaneChazelas você poderia fazer o seguinte usando o "1 < >" notação para abrir um arquivo para leitura & escrevendo, e as melhorias que ele sugeriu com o comando sort
.
$ (head -n 2; sort -nk2) < sample.txt 1<> sample.txt
Nome Note
------------
Mehdi 0
Shnou 5
Others 10
Sunday 20