Използване на командата за сортиране на

Елементите, които трябва да се сортират, трябва да бъдат определени по някакъв начин

Данните в текстов файл на Linux могат да бъдат сортирани с командата за сортиране, стига всеки елемент да бъде определен по някакъв начин. Често се използва запетая за разделителна информация.

Основни правила за сортиране

Командата за подреждане пренарежда линиите в текстов файл, за да ги подреди по азбучен и цифров начин. Правилата по подразбиране за командата за сортиране са:

Сортиране на текстов файл

За да сортирате линиите в ограничен Linux файл, използвайте командата за сортиране по следния начин:

$ sort -k2 test.txt

който сортира файла "test.txt" според буквите, започващи от втората колона (k2 се отнася до втората колона). Ако приемем, че съдържанието на входния файл е:

1, Джъстин Тимбърлейк, Дял 545, Цена $ 7.30 2, Тейлър Суифт, Заглавие 723, Цена $ 7.90 3, Мик Джагър, Заглавие 610, Цена $ 7.90 4, Лейди Гага, Заглавие 118, Цена $ 7.30 5, Johnny Cash, Дял 482, Цена $ 6.50 6, Елвис Пресли, Заглавие 335, Цена $ 7.30 7, Джон Ленън, Дял 271, Цена $ 7.90 8, Майкъл Джексън, Заглавие 373, Цена $ 5.50

Тъй като втората колона в този пример съдържа име и фамилия, сортираните резултати се подреждат с първата буква от първото име на всяко лице във втората колона - Елвис, Джон, Джони, Джъстин, Лейди, Майкъл, Мик и Тейлър , както е показано по-долу:

6, Елвис Пресли, Заглавие 335, Цена $ 6.30 7, Джон Ленън, Дял 271, Цена $ 7.90 5, Джони Кеш, Дял 482, Цена $ 6.50 1, Джъстин Тимбърлейк, Заглавие 545, Цена $ 6.30 4, Lady Gaga, Заглавие 118, Цена $ 6.30 8, Майкъл Джексън, Заглавие 373, Цена $ 5.50 3, Мик Джагър, Заглавие 610, Цена $ 7.90 2, Тейлър Суифт, Заглавие 723, Цена $ 7.90

Ако сортирате файла с -k3 (използвайки съдържанието на линията, започвайки от колона 3 - колоната Номер на заглавието), изходът е:

4, Lady Gaga, Заглавие 118, Цена $ 6.30 7, Джон Ленън, Дял 271, Цена $ 7.90 6, Елвис Пресли, Заглавие 335, Цена $ 6.30 8, Майкъл Джексън, Заглавие 373, Цена $ 5.50 5, Johnny Cash, Дял 482, Цена $ 6.50 1, Джъстин Тимбърлейк, Дял 545, Цена $ 6.30 3, Мик Джагър, Заглавие 610, Цена $ 7.90 2, Тейлър Суифт, Заглавие 723, Цена $ 7.90

и

$ sort -k4 test.txt

произвежда списък сортирани по цена:

8, Майкъл Джексън, Дял 373, Цена $ 5.50 1, Джъстин Тимбърлейк, Дял 545, Цена $ 6.30 4, Лейди Гага, Заглавие 118, Цена $ 6.30 6, Елвис Пресли, Заглавие 335, Цена $ 6.30 5, Johnny Cash, Дял 482, Цена $ 6.50 2, Тейлър Суифт, Дял 723, Цена $ 7.90 3, Мик Джагър, Заглавие 610, Цена $ 7.90 7, Джон Ленън, Дял 271, Цена $ 7.90

Обръщане на сортиране

Опцията -r обръща сортирането. Например, като използвате горните резултати:

$ sort -k4 -r test.txt

добиви:

7, Джон Ленън, Дял 271, Цена $ 7.90 3, Мик Джагър, Заглавие 610, Цена $ 7.90 2, Тейлър Суифт, Заглавие 723, Цена $ 7.90 5, Johnny Cash, Дял 482, Цена $ 6.50 6, Elvis Presley, Title 335, Цена $ 6.30 4, Lady Gaga, Заглавие 118, Цена $ 6.30 1, Джъстин Тимбърлейк, Заглавие 545, Цена $ 6.30 8, Майкъл Джексън, Заглавие 373, Цена $ 5.50

Запазване на сериен файл

Сортирането на файл не го запазва. За да запазите сортирания списък във файл, използвате оператора за пренасочване:

sort -k4 -r test.txt> test_new.txt

където "test_new.txt" е новият файл.

Сортиране на поток изход

Можете също така да приложите командата за сортиране към изхода на поток, като оператора на тръби:

$ ls -al | сортирай -r -n -k5

Това сортира изхода на списъка с файлове, генериран от командата ls по размер на файла, като се започне с най-големите файлове. Операторът -n определя числено сортиране, а не азбучен.