Jak mohu seřadit soubor podle druhého sloupce z terminálu. Obsah souboru je:
Nome     Note
------------
Mehdi    0
Sunday   20
Others   10
Shnou    5
 Pomocí sort -t' ' -nk2 mi nedává správný výsledek. Jak také mohu zajistit, aby obsah souboru zůstal seřazený?
Přijatá odpověď:
Myslím, že to, co hledáte, je něco takového:
Metoda č. 1:použití hlavy a ocasu
$ (head -n 2 sample.txt; tail -n +3 sample.txt | sort -t' ' -nk2) > a.tmp && mv a.tmp sample.txt
Nome     Note
------------
Mehdi    0
Shnou    5
Others   10
Sunday   20
Tím se zabere první řádek textového souboru, pak se vše za prvními 2 řádky omezí, což se následně seřadí.
Metoda č. 2:pouze pomocí hlavy
$ (head -n 2; sort -t' ' -nk2) < sample.txt > a.tmp && mv a.tmp sample.txt
Nome     Note
------------
Mehdi    0
Shnou    5
Others   10
Sunday   20
Vezme textový soubor jako vstup, zobrazí pouze první řádek, zbytek seřadí.
Obvykle není dobrý nápad upravovat soubory na místě. Je to možné, ale lepší je použít přechodný soubor.
Metoda #3:Provedení #2 bez přechodného souboru
 Když jste ukradli myšlenku od @StephaneChazelase, mohli byste udělat následující pomocí zápisu „1<>“ k otevření souboru pro čtení a zápis a vylepšení, která navrhl pomocí sort příkaz.
$ (head -n 2; sort -nk2) < sample.txt 1<> sample.txt
Nome     Note
------------
Mehdi    0
Shnou    5
Others   10
Sunday   20