Puoi usare il -o
, --output=FILE
opzione di ordinamento per indicare lo stesso file di input e output:
sort -o file file
Senza ripetere il nome del file (con l'espansione delle parentesi graffe bash)
sort -o file{,}
⚠️ Nota importante: un errore comune è provare a reindirizzare l'output allo stesso file di input (ad es. sort file > file
). Questo non funziona poiché la shell sta effettuando i reindirizzamenti (non sort(1) programma) e il file di input (che è anche l'output) verrà cancellato appena prima di dare sort(1) programma l'opportunità di leggerlo.
Il sort
Il comando stampa il risultato dell'operazione di ordinamento sullo standard output per impostazione predefinita. Per ottenere un ordinamento "sul posto", puoi fare questo:
sort -o file file
Questo sovrascrive l'input file
con l'output ordinato. Il -o
switch, utilizzato per specificare un output, è definito da POSIX, quindi dovrebbe essere disponibile su tutte le versioni di sort
:
-o Specifica il nome di un file di output da utilizzare al posto dell'output standard. Questo file può essere uguale a uno dei file di input.
Se sei così sfortunato da avere una versione di sort
senza -o
switch (Luis mi assicura che esistono), puoi ottenere una modifica "sul posto" nel modo standard:
sort file > tmp && mv tmp file