Linux kārtošanas komandas noteikumi un piemēri
Dati a Linux teksta failu var kārtot ar kārtošanas komandu, ja katrs elements ir kaut kādā veidā norobežots. Bieži vien komats tiek izmantots kā norobežotas informācijas atdalītājs.

Šķirošanas pamatnoteikumi
Komanda Kārtot pārkārto rindas teksta failā, lai kārtotu rindas skaitliski un alfabētiski. Kārtošanas komandas noklusējuma noteikumi ir:
- Teksts, kas sākas ar ciparu, parādās pirms teksta, kas sākas ar burtu; vispirms kārto zemākus skaitļus.
- Teksts, kas sākas ar burtu, kas alfabētā parādās agrāk nekā citu teksta ierakstu pirmais burts, tiek kārtots pirms teksta, kas sākas ar burtu, kas alfabētā parādās vēlāk.
- Kad tekstu sākas ar viena un tā paša burta lielajiem un mazajiem burtiem, vispirms tiek sakārtoti mazie burti.
Kārtot teksta failu
Lai kārtotu līnijas norobežotā Linux failā, izmantojiet kārtošanu komandu kā šis:
kārtot -k2 tabula1.txt
Šī komanda sakārto failu tabula1.txt saskaņā ar rakstzīmēm, kas sākas ar otro kolonnu (k2 attiecas uz otro sleju). Pieņemot, ka ievades faila saturs ir:
1, Džastins, Timberleiks, nosaukums 545, cena 7,30 USD
2, Teilore, Svifta, nosaukums 723, cena 7,90 USD
3, Miks, Džegers, nosaukums 610, cena 7,90 USD
4, Lady, Gaga, nosaukums 118, cena 7,30 USD
5, Džonijs, skaidra nauda, nosaukums 482, cena 6,50 USD
6, Elvis, Preslijs, nosaukums 335, cena 7,30 USD
7, Džons, Lenons, nosaukums 271, cena 7,90 USD
8, Maikls, Džeksons, nosaukums 373, cena 5,50 USD
Tā kā šī piemēra otrajā kolonnā ir vārdi, sakārtotā izvade tiek sakārtota pēc katras personas vārda pirmā burta otrajā kolonnā, kā parādīts tālāk:
6, Elvis, Preslijs, nosaukums 335, cena 7,30 USD
7, Džons, Lenons, nosaukums 271, cena 7,90 USD
5, Džonijs, skaidra nauda, nosaukums 482, cena 6,50 USD
1, Džastins, Timberleiks, nosaukums 545, cena 7,30 USD
4, Lady, Gaga, nosaukums 118, cena 7,30 USD
8, Maikls, Džeksons, nosaukums 373, cena 5,50 USD
3, Miks, Džegers, nosaukums 610, cena 7,90 USD
2, Teilore, Svifta, nosaukums 723, cena 7,90 USD
Ja kārtojat failu ar -k3 (izmantojot rindas saturu, kas sākas ar kolonnu 3, kolonna Uzvārds), izvade ir:
5, Džonijs, skaidra nauda, nosaukums 482, cena 6,50 USD
4, Lady, Gaga, nosaukums 118, cena 7,30 USD
8, Maikls, Džeksons, nosaukums 373, cena 5,50 USD
3, Miks, Džegers, nosaukums 610, cena 7,90 USD
7, Džons, Lenons, nosaukums 271, cena 7,90 USD
6, Elvis, Preslijs, nosaukums 335, cena 7,30 USD
2, Teilore, Svifta, nosaukums 723, cena 7,90 USD
1, Džastins, Timberleiks, nosaukums 545, cena 7,30 USD
un -k5 izveido sarakstu, kas sakārtots pēc cenas:
4, Lady, Gaga, nosaukums 118, cena 7,30 USD
7, Džons, Lenons, nosaukums 271, cena 7,90 USD
6, Elvis, Preslijs, nosaukums 335, cena 7,30 USD
8, Maikls, Džeksons, nosaukums 373, cena 5,50 USD
5, Džonijs, skaidra nauda, nosaukums 482, cena 6,50 USD
1, Džastins, Timberleiks, nosaukums 545, cena 7,30 USD
3, Miks, Džegers, nosaukums 610, cena 7,90 USD
2, Teilore, Svifta, nosaukums 723, cena 7,90 USD
Pagaidiet, tas nedarbojās, vai ne? Tā vietā, lai kārtotu pēc cenas, komanda sakārtoja sarakstu pēc nosaukuma numura. Kāpēc? Ja vien nav norādīts norobežotājs, pie kura tai vajadzētu sadalīt katru rindiņu kolonnās, tas izmanto atstarpes. Tā kā katra nosaukuma ieraksta vidū ir atstarpe, katra ieraksta ceturtā kolonna kļūst par vārdu "Nosaukums" un piektā kolonna kļūst par nosaukuma numuru.
Izmantojiet karogu -t, lai norādītu šķirošanas atdalītāju. Tas kontrolē tieši to, kur komanda atdala kolonnas.
kārtot -t, -k5 tabula1.txt
Tas rada vēlamo rezultātu:
8, Maikls, Džeksons, nosaukums 373, cena 5,50 USD
5, Džonijs, skaidra nauda, nosaukums 482, cena 6,50 USD
1, Džastins, Timberleiks, nosaukums 545, cena 7,30 USD
4, Lady, Gaga, nosaukums 118, cena 7,30 USD
6, Elvis, Preslijs, nosaukums 335, cena 7,30 USD
2, Teilore, Svifta, nosaukums 723, cena 7,90 USD
3, Miks, Džegers, nosaukums 610, cena 7,90 USD
7, Džons, Lenons, nosaukums 271, cena 7,90 USD
Parasti jūs vēlaties norādīt norobežotāju. Tas novērš nevēlamu apjukumu un neprecīzus rezultātus. Tas jo īpaši attiecas uz lielākiem failiem, kas ne vienmēr var būt acīmredzami nepareizi.
Apgrieztā šķirošana
The -r opcija maina šķirošanu. Piemēram, izmantojot iepriekš minētos rezultātus:
kārtot -r -t, -k5 tabula1.txt
raža:
7, Džons, Lenons, nosaukums 271, cena 7,90 USD
3, Miks, Džegers, nosaukums 610, cena 7,90 USD
2, Teilore, Svifta, nosaukums 723, cena 7,90 USD
6, Elvis, Preslijs, nosaukums 335, cena 7,30 USD
4, Lady, Gaga, nosaukums 118, cena 7,30 USD
1, Džastins, Timberleiks, nosaukums 545, cena 7,30 USD
5, Džonijs, skaidra nauda, nosaukums 482, cena 6,50 USD
8, Maikls, Džeksons, nosaukums 373, cena 5,50 USD
Saglabājiet sakārtoto failu
Kārtojot failu, tas netiek saglabāts. Lai saglabātu sakārtoto sarakstu failā, izmantojiet novirzīšanas operatoru:
kārtot -k6 table1.txt > test_new.txt
kur test_new.txt ir jaunais fails.
Kārtot straumes izvadi
Varat arī lietot kārtošanas komandu straumes izvadei, piemēram, caurules operatoram:
ls -n | kārtot -t, -k5
Tas sakārto faila saraksta izvadi, ko ģenerē ls komandu pēc faila lieluma, sākot ar lielākajiem failiem. The -n operators norāda ciparu kārtošanu, nevis alfabētisku.