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