GNU/Linux >> Linux Esercitazione >  >> Linux

Come ordinare un file sul posto

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

Linux
  1. Modo per modificare un file sul posto?

  2. Come ordinare l'output per dimensione?

  3. Ordinare parte di un file?

  4. Come rendere il file sparse?

  5. Come modificare un file sul posto usando awk? (come con sed -i)

Come leggere un file riga per riga in Bash

Come creare un file in Linux

Come creare file Tar Gz

Come decomprimere (aprire) il file Gz

Come collegare simbolicamente un file in Linux

Come fare eco in un file