GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trier un fichier sur place

Vous pouvez utiliser le -o , --output=FILE option de tri pour indiquer le même fichier d'entrée et de sortie :

sort -o file file

Sans répéter le nom du fichier (avec l'expansion des accolades bash)

sort -o file{,}

⚠️ Remarque importante : une erreur courante consiste à essayer de rediriger la sortie vers le même fichier d'entrée (par exemple, sort file > file ). Cela ne fonctionne pas car le shell effectue les redirections (pas le sort(1) programme) et le fichier d'entrée (comme étant aussi la sortie) sera effacé juste avant de donner le sort(1) programmez la possibilité de le lire.


Le sort La commande imprime le résultat de l'opération de tri sur la sortie standard par défaut. Pour réaliser un tri "sur place", vous pouvez faire ceci :

sort -o file file

Cela écrase l'entrée file avec la sortie triée. Le -o switch, utilisé pour spécifier une sortie, est défini par POSIX, il devrait donc être disponible sur toutes les versions de sort :

-o Spécifiez le nom d'un fichier de sortie à utiliser à la place de la sortie standard. Ce fichier peut être le même que l'un des fichiers d'entrée.

Si vous avez la malchance d'avoir une version de sort sans le -o switch (Luis m'assure qu'ils existent), vous pouvez réaliser une édition "sur place" de la manière standard :

sort file > tmp && mv tmp file

Linux
  1. Manière de modifier un fichier sur place ?

  2. Comment trier la sortie par taille ?

  3. Trier une partie d'un fichier ?

  4. Comment modifier un fichier sur place en utilisant awk ? (comme avec sed -i)

  5. Comment copier un fichier de manière transactionnelle ?

Comment lire un fichier ligne par ligne dans Bash

Comment créer un fichier sous Linux

Comment créer un fichier Tar Gz

Comment décompresser (ouvrir) le fichier Gz

Comment créer un lien symbolique vers un fichier sous Linux

Comment faire écho dans le fichier