Třídit (Unix) - Sort (Unix)
The třídit příkaz | |
Původní autoři | Ken Thompson (AT&T Bell Laboratories ) |
---|---|
Vývojáři | Rozličný open-source a komerční vývojáři |
První vydání | 3. listopadu 1971 |
Operační systém | Multics, Unix, Unixový, PROTI, Plán 9, Peklo, MSX-DOS, IBM i |
Typ | Příkaz |
Licence | coreutils: GPLv3 + |
v výpočetní, třídit je standard příkazový řádek program Unix a Unixový operační systémy, který vytiskne řádky svého vstupu nebo zřetězení všech soubory uvedené v jeho seznam argumentů v seřazeném pořadí. Třídění se provádí na základě jednoho nebo více klíčů řazení extrahovaných z každého řádku vstupu. Ve výchozím nastavení se celý vstup považuje za klíč řazení. Výchozím oddělovačem pole je prázdné místo. Příkaz podporuje řadu možnosti příkazového řádku které se mohou lišit podle implementace. Například „-r
"příznak obrátí pořadí řazení.
Dějiny
A třídit
příkaz, který vyvolá zařízení obecného řazení, byl poprvé implementován uvnitř Multics.[1] Později se objevil v Verze 1 Unix. Tuto verzi původně napsal Ken Thompson v AT&T Bell Laboratories. Podle Verze 4 Thompson ji upravil tak, aby ji bylo možné použít potrubí, ale řazení zachovalo možnost pojmenovat výstupní soubor, protože byl použit k řazení souboru na místě. v Verze 5, Thompson vynalezl „-“, aby reprezentoval standardní vstup.[2]
Verze třídit svázaný GNU coreutils napsal Mike Haertel a Paul Eggert.[3] Tato implementace využívá Sloučit třídění algoritmus.
Podobné příkazy jsou k dispozici na mnoha jiných operačních systémech, například a třídit příkaz je součástí ASCII je Nástroje MSX-DOS2 pro MSX-DOS verze 2.[4]
The třídit příkaz byl také přenesen do IBM i operační systém.[5]
Syntax
třídit [MOŽNOST] ... [SOUBOR] ...
Bez č SOUBOR
nebo kdy SOUBOR
je -
, příkaz čte z standardní vstup.
Parametry
-b | Ignoruje úvodní mezery. |
-d | Považuje pouze mezery a alfanumerické znaky. |
-F | Přeložte malá písmena na velká písmena. |
-G | Porovnává podle obecné číselné hodnoty. |
-i | Považuje pouze tisknutelné znaky. |
-M | Porovná (neznámo) <'JAN' <... <'DEC'. |
-h | Porovnejte lidsky čitelná čísla (např. 2K 1G). |
-n | Porovná podle číselné hodnoty řetězce. |
-R | Zamíchá, ale seskupí stejné klíče. Viz také: šuf |
-r | Obrátí výsledek srovnání. |
Příklady
Seřadit soubor v abecedním pořadí
$ kočka telefonní seznamSmith, Brett 555-4321Doe, John 555-1234Doe, Jane 555-3214Avery, Cory 555-4132Fogarty, Suzie 555-2314 $ třídit telefonní seznamAvery, Cory 555-4132 Doe, Jane 555-3214 Doe, John 555-1234 Fogarty, Suzie 555-2314 Smith, Brett 555-4321
Seřadit podle čísla
The -n
Tato volba umožňuje třídění programu podle číselné hodnoty. The du příkaz produkuje výstup, který začíná číslem, velikostí souboru, takže jeho výstup může být směrován na třídit vytvořit seznam souborů seřazených podle (vzestupně) velikosti souboru:
$ du / bin / * | třídit -n4 / bin / název domény24 / bin / ls102 / bin / sh304 / bin / csh
Sloupce nebo pole
Použijte -k
možnost seřadit podle určitého sloupce. Například použijte „-k 2
"seřadit podle druhého sloupce. Ve starých verzích řazení se +1
Možnost provedla řazení programu ve druhém sloupci dat (+2
pro třetí atd.). Toto použití je zastaralé.
$ kočka PSČAdam 12345 Bob 34567 Joe 56789 Sam 45678 Wendy 23456 $ třídit -k 2n PSČAdam 12345 Wendy 23456 Bob 34567 Sam 45678 Joe 56789
Řazení podle více polí
The -k m, n
Možnost umožňuje seřadit klíč, který je potenciálně složen z více polí (začátek ve sloupci m
, konec ve sloupci n
):
$ kočka kvótafred 2000bob 1000an 1000chad 1000don 1500eric 500 $ třídit -k2,2 -k1,1 kvótaeric 500an 1000bob 1000chad 1000don 1500fred 2000
Zde se první třídění provádí pomocí sloupce 2. -k2,2
specifikuje řazení na klíči začínající a končící sloupcem 2. Pokud -k2
místo toho se použije klíč řazení, který začne ve sloupci 2 a rozšíří se na konec řádku, přičemž překlenuje všechna pole mezi nimi. The n
znamená „číselné řazení“. -k1,1
diktuje přerušení vazeb pomocí hodnoty ve sloupci 1 a standardně seřadí abecedně. Všimněte si, že bob a chad mají stejnou kvótu a jsou řazeny abecedně v konečném výstupu.
Řazení souboru s oddělovačem potrubí
$ sort -k2,2, -k1,1 -t '|' PSČAdam | 12345Wendy | 23456Sam | 45678Joe | 56789Bob | 34567
Řazení souboru odděleného tabulátory
Třídění souboru pomocí hodnoty oddělené tabulátorem vyžaduje znak tabulátoru bude specifikováno jako oddělovač sloupců. Tato ilustrace používá notaci kotace dolaru[6][7]specifikovat záložku jako a C úniková sekvence.
$ třídit -k2,2 -t $' ' telefonní seznam Doe, John 555-1234Fogarty, Suzie 555-2314Doe, Jane 555-3214Avery, Cory 555-4132Smith, Brett 555-4321
Třídit obráceně
The -r
volba jen obrátí pořadí řazení:
$ třídit -rk 2n PSČJoe 56789 Sam 45678 Bob 34567 Wendy 23456 Adam 12345
Řadit náhodně
Implementace GNU má a -R - náhodně seřadit
možnost založená na hašování; nejde o úplné náhodné zamíchání, protože seřadí stejné řádky dohromady. Skutečné náhodné řazení poskytuje nástroj Unix šuf.
Řadit podle verze
Implementace GNU má a -V --version-sort
možnost, která je přirozeným druhem (verze) čísel v textu. To se stane, že funguje pro IP adresy.
Viz také
Reference
- ^ Multics Commands
- ^ McIlroy, M. D. (1987). Čtenář Research Unix: anotované výňatky z Programmer's Manual, 1971–1986 (PDF) (Technická zpráva). CSTR. Bell Labs. 139.
- ^ https://linux.die.net/man/1/sort
- ^ Uživatelská příručka k nástrojům MSX-DOS2 od ASCII Corporation
- ^ IBM. „IBM System i verze 7.2 Programování Qshell“ (PDF). Citováno 2020-09-05.
- ^ „Referenční příručka GNU Bash pro Bash, verze 4.2: Část 3.1.2.4 Citování ANSI-C“. Free Software Foundation, Inc. 28. prosince 2010. Citováno 1. února 2013.
Se slovy ve tvaru $ 'string' se zachází zvlášť. Slovo se rozšíří na řetězec, přičemž znaky se zpětným lomítkem se nahradí podle specifikace standardu ANSI C.
- ^ Fowler, Glenn S .; Korn, David G.; Vo, Kiem-Phong. „KornShell FAQ“. Archivováno z původního dne 2013-05-27. Citováno 3. března 2015.
Syntaxe řetězce $ '...' byla přidána do ksh93, aby se vyřešil problém se zadáváním speciálních znaků do skriptů. Používá pravidla ANSI-C k překladu řetězce mezi znakem „...“.
externí odkazy
- Původní stránka řazení Původní program BSD Unix stránka
- Linux Příkazy uživatele Manuál –
- Plán 9 Programátorská příručka, svazek 1 –
- Peklo Obecné příkazy Manuál –
- Další podrobnosti o řazení v Softpanorama