Поиск…


Вступление

sort - это команда Unix для упорядочивания данных в файлах (-ах) в последовательности.

Синтаксис

  • sort [option] filename

параметры

вариант Имея в виду
-u Сделайте уникальные уникальные строки

замечания

Полное руководство пользователя по sort читающей онлайн

Вывод команды сортировки

sort используется для сортировки списка строк.

Вход из файла

sort file.txt  

Вход из команды

Вы можете сортировать любую команду вывода. В примере приведен список файлов по шаблону.

find * -name pattern | sort

Сделать вывод уникальным

Если каждая строка вывода должна быть уникальной, добавьте опцию -u .

Отобразить владельца файлов в папке

ls -l | awk '{print $3}' | sort -u

Числовая сортировка

Предположим, что у нас есть этот файл:

test>>cat file
10.Gryffindor
4.Hogwarts
2.Harry
3.Dumbledore
1.The sorting hat

Чтобы отсортировать этот файл в численном порядке, используйте сортировку с опцией -n:

test>>sort -n file  

Это должно сортировать файл, как показано ниже:

1.The sorting hat  
2.Harry  
3.Dumbledore  
4.Hogwarts  
10.Gryffindor

Обратный порядок сортировки: Чтобы изменить порядок сортировки, используйте параметр -r

Чтобы изменить порядок сортировки вышеуказанного файла, используйте:

sort -rn file

Это должно сортировать файл, как показано ниже:

10.Gryffindor
4.Hogwarts
3.Dumbledore
2.Harry
1.The sorting hat

Сортировать по ключам

Предположим, что у нас есть этот файл:

test>>cat Hogwarts 
  Harry        Malfoy        Rowena        Helga
  Gryffindor   Slytherin     Ravenclaw     Hufflepuff
  Hermione     Goyle         Lockhart      Tonks
  Ron          Snape         Olivander     Newt
  Ron          Goyle         Flitwick      Sprout

Для сортировки этого файла с использованием столбца в качестве ключа используйте параметр k:

test>>sort -k 2 Hogwarts

Это сортирует файл со столбцом 2 в качестве ключа:

  Ron        Goyle        Flitwick        Sprout
  Hermione   Goyle        Lockhart        Tonks
  Harry      Malfoy       Rowena          Helga
  Gryffindor Slytherin    Ravenclaw       Hufflepuff
  Ron        Snape        Olivander       Newt

Теперь, если нам нужно отсортировать файл с дополнительным ключом вместе с использованием первичного ключа:

sort -k 2,2 -k 1,1 Hogwarts 

Сначала он сортирует файл со столбцом 2 в качестве первичного ключа, а затем сортирует файл со столбцом 1 в качестве вторичного ключа:

  Hermione        Goyle        Lockhart        Tonks
  Ron             Goyle        Flitwick        Sprout
  Harry           Malfoy       Rowena          Helga
  Gryffindor      Slytherin    Ravenclaw       Hufflepuff
  Ron             Snape        Olivander       Newt

Если нам нужно отсортировать файл с более чем одним ключом, то для каждой опции -k нам нужно указать, где заканчивается сортировка. Итак, -k1,1 означает начало сортировки в первом столбце и конец сортировки в первом столбце.

-t вариант

В предыдущем примере файл имел дельта-разделитель по умолчанию. В случае сортировки файла, который имеет нестандартный делиметр, нам нужна опция -t, чтобы указать делиметр. Предположим, у нас есть файл, как показано ниже:

test>>cat file
5.|Gryffindor
4.|Hogwarts
2.|Harry
3.|Dumbledore
1.|The sorting hat

Чтобы отсортировать этот файл в соответствии со вторым столбцом, используйте:

test>>sort -t "|" -k 2 file

Это отсортирует файл следующим образом:

3.|Dumbledore
5.|Gryffindor
2.|Harry
4.|Hogwarts
1.|The sorting hat


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow