Bash
Использование сортировки
Поиск…
Вступление
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