GNU/Linux >> Znalost Linux >  >> Linux

Jak třídit soubor na místě

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

Linux
  1. Jak upravit soubor na místě?

  2. Jak seřadit výstup Du podle velikosti?

  3. Třídit část souboru?

  1. Jak udělat soubor řídký?

  2. Jak grep \nv souboru

  3. Jak změnit soubor na místě pomocí awk? (jako u sed -i)

  1. Jak přejmenovat soubor v Linuxu?

  2. Jak provést třídění ls podle přípony souboru a poté názvu?

  3. Jak transakčně zkopírovat soubor?