Můžete použít -o
, --output=FILE
možnost řazení pro označení stejného vstupního a výstupního souboru:
sort -o file file
Bez opakování názvu souboru (s rozšířením složené závorky bash)
sort -o file{,}
⚠️ Důležitá poznámka: častou chybou je pokus o přesměrování výstupu do stejného vstupního souboru (např. sort file > file
). Toto nefunguje, protože shell provádí přesměrování (ne sort(1)). program) a vstupní soubor (jakožto také výstupní) bude vymazán těsně před zadáním sort(1) naprogramujte možnost čtení.
sort
příkaz standardně vytiskne výsledek operace řazení na standardní výstup. Chcete-li dosáhnout řazení „na místě“, můžete provést toto:
sort -o file file
Tím se přepíše vstup file
s tříděným výstupem. -o
přepínač, který se používá k určení výstupu, je definován standardem POSIX, takže by měl být dostupný ve všech verzích sort
:
-o Zadejte název výstupního souboru, který se má použít místo standardního výstupu. Tento soubor může být stejný jako jeden ze vstupních souborů.
Pokud nemáte tu smůlu, že máte verzi sort
bez -o
přepínač (Luis mě ujišťuje, že existují), můžete provést úpravy „na místě“ standardním způsobem:
sort file > tmp && mv tmp file