GNU/Linux >> Tutoriels Linux >  >> Linux

Trier une partie d'un fichier ?

Comment puis-je trier le fichier par la deuxième colonne du terminal. Le contenu du fichier est :

Nome     Note
------------
Mehdi    0
Sunday   20
Others   10
Shnou    5

Utilisation de sort -t' ' -nk2 ne me donne pas le bon résultat. Aussi, comment puis-je m'assurer que le contenu du fichier reste trié ?

Réponse acceptée :

Je pense que ce que vous recherchez ressemble à ceci :

Méthode n° 1 :utiliser pile et face

$ (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

Cela prend la première ligne du fichier texte, puis termine tout après les 2 premières lignes qui sont ensuite triées.

Méthode n° 2 :utiliser simplement la tête

$ (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

Prend le fichier texte en entrée, affiche uniquement la première ligne, trie le reste.

Ce n'est généralement pas une bonne idée de modifier les fichiers sur place. C'est possible, mais mieux vaut utiliser une lime intermédiaire.

Méthode n° 3 :Faire n° 2 sans fichier intermédiaire

En volant l'idée de @StephaneChazelas, vous pouvez faire ce qui suit en utilisant la notation "1<>" pour ouvrir un fichier en lecture et en écriture, et les améliorations qu'il a suggérées avec le sort commande.

$ (head -n 2; sort -nk2) < sample.txt 1<> sample.txt

Nome     Note
------------
Mehdi    0
Shnou    5
Others   10
Sunday   20

Linux
  1. Commande de tri sous Linux avec des exemples

  2. Ordre des redirections ?

  3. Utiliser Uniq sur le texte Unicode ?

  4. sort Exemples de commandes sous Linux

  5. tri :commande introuvable

Shell Scripting Partie 3 :Structures de contrôle de décision dans les scripts Shell

Plugins d'éditeur Vim utiles pour les développeurs de logiciels - partie 3 :a.vim

Tout est un fichier sous Linux - Partie 2

Tout est un fichier sous Linux - Partie 1

Éditeur VIM

Commandes Linux fréquemment utilisées par les administrateurs système Linux - Partie 5