Le jeux de données
cat commandes.txt ID_CMD ID_PRD ID_CMD4 2 ID_CMD5 3 ID_CMD1 4 ID_CMD2 4 ID_CMD3 4
Tri sur la première colonne
sort commandes.txt ID_CMD1 4 ID_CMD2 4 ID_CMD3 4 ID_CMD4 2 ID_CMD5 3 ID_CMD ID_PRD
Le problème est que la ligne d'en-tête est aussi triée. En utilisant head -n1 et tail -n+2, on s'en sort :
head -n1 commandes.txt && tail -n+2 commandes.txt | sort ID_CMD ID_PRD ID_CMD1 4 ID_CMD2 4 ID_CMD3 4 ID_CMD4 2 ID_CMD5 3
ou
thierry@PC-thierry:~$ head -n1 commandes.txt && sort <(tail -n+2 commandes.txt) ID_CMD ID_PRD ID_CMD1 4 ID_CMD2 4 ID_CMD3 4 ID_CMD4 2 ID_CMD5 3
Tri sur une autre colonne que la colonne 1
Nous allons trier sur la colonne ID_PRD, c'est-à-dire la seconde, qui est de type numérique
cat commandes.txt | sort -k2n ID_CMD ID_PRD ID_CMD4 2 ID_CMD5 3 ID_CMD1 4 ID_CMD2 4 ID_CMD3 4