Музыка — универсальный язык человечества (Г. Лонгфелло).

10 полезных примеров команды Sort в Linux

6 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
18 июля 2019
10 полезных примеров команды Sort в Linux
Команда Sort в Linux используется для сортировки содержимого текстовых файлов. Из этой статьи вы узнаете несколько основных примеров команды sort.

 

Команда Sort в Linux

Команда sort упорядочивает текстовые строки полезными способами. Этот простой инструмент может помочь вам быстро отсортировать информацию из командной строки.

Синтаксис

sort [options] <filename>

 

Вы должны отметить несколько вещей:

  • При использовании сортировки без каких-либо параметров применяются правила по умолчанию. Это помогает понять правила по умолчанию, чтобы избежать неожиданных результатов.
  • При использовании сортировки ваши исходные данные в безопасности. Результаты вашего ввода отображаются только в командной строке. Однако вы можете указать вывод в отдельный файл, если хотите. Подробнее об этом позже.
  • Сортировка изначально была разработана для использования с символами ASCII. Мы не проверяли это, но возможно, что разные кодировки могут привести к неожиданным результатам.

Правила по умолчанию в команде sort

Это правила по умолчанию при использовании сортировки. Первые несколько примеров прояснят, как управляются эти приоритеты. Тогда мы рассмотрим специализированные варианты.

  • цифры> буквы
  • строчные> прописные

 

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

Позвольте нам показать вам несколько примеров команды sort, которые вы можете использовать в различных ситуациях.

 

1. Сортировка в алфавитном порядке

Команда sort по умолчанию позволяет легко просматривать информацию в алфавитном порядке. Никаких опций не требуется, и даже для записей со смешанным регистром сортировка AZ работает должным образом

Мы собираемся использовать пример текстового файла с именем andreyex.txt, и если вы просмотрите содержимое файла , вы увидите следующее:

Linux
Debian
Mint
CentOS
Ubuntu

sort andreyex.txt

 

Вот отсортированный по алфавиту вывод:

CentOS
Debian
Linux
Mint
Ubuntu

 

2. Сортировка по числовому значению [опция -n]

Давайте возьмем тот же список, который мы использовали в предыдущем примере, и отсортируем по порядку номеров. Если вам интересно, список отражает одни из дистрибутивов Linux.

Мы изменили содержимое файла так, чтобы элементы были пронумерованы, но не в порядке, как показано ниже.

1. Debian
2. CentOS
3. Linux
4. Mint
5. Ubuntu

sort andreyex.txt

 

После сортировки результат:

1. Debian
2. CentOS
3. Linux 
4. Mint 
5. Ubuntu

 

Выглядит хорошо, правда? Вы можете полагаться на этот метод, чтобы точно расположить ваши данные? Возможно нет. Давайте посмотрим на другой пример, чтобы выяснить, почему.

Вот наш новый образец текста:

1
5
10
3
5
2
60
23
432
21

 

Теперь, если мы используем команду sort без каких-либо опций, то вот что мы получим:

sort orderвdigits.txt
1
10
2
21
23
3
432
5
5
60

 

Примечание
Числа сортируются только по их начальным буквам.

При добавлении параметра -n, оценивается числовое значение строки, а не только первый символ. Теперь вы можете видеть, что наш список правильно отсортирован.

sort order.txt -n

 

Теперь у вас будет правильно отсортированный вывод:
1
2
3
5
5
10
21
23
60
432

 

3. Сортировка в обратном порядке [опция -r]

Для этого мы снова будем использовать наш список дистрибутивов. Обратная функция не требует пояснений. Это изменит порядок содержимого вашего файла.

sort andreyex.txt -n

 

И здесь у вас есть выходной текст в обратном порядке:

5. Ubuntu
4. Mint
3. Linux
2. CentOS
1. Debian

 

4. Случайная сортировка [опция -R]

Если вы случайно нажали клавишу Shift, при попытке выполнить функцию реверса, возможно, вы получили странные результаты. -R переставляет вывод в случайном порядке.

sort andreyex.txt -R

 

Вот случайно отсортированный вывод:

4. Mint
5. Ubuntu
1. Debian
3. Linux
2. CentOS

 

5. Сортировать по месяцам [опция -M]

Сортировка также имеет встроенную функциональность, чтобы организовать по месяцам. Он распознает несколько форматов, основанных на информации о конкретной локали. Мы попытаемся продемонстрировать несколько несоответствующих тестов, чтобы показать, что это будет организовано по дате, а не по году. Сокращения месяца отображаются перед полными именами.

Вот пример текстового файла в этом примере:

Mar
March
February
Apr
April
August
July
June
November
September
1
4
3
6
01/03/19
01/08/19
02/09/18

 

Давайте разберем по месяцам, используя опцию -M:

sort filename.txt -M

 

Вот результат, который вы увидите:

01/03/19
01/08/19
02/09/18
1
3
4
6
Jan
February
Mar
March
Apr
April
May
June
July
August
September
October
November
December

 

6. Сохраните отсортированные результаты в другой файл

Как мы упоминали ранее, сортировка не изменяет исходный файл по умолчанию. Если вам нужно сохранить отсортированный контент, это можно сделать.

Для этого примера мы создали новый файл, в котором хотим, чтобы отсортированная информация была напечатана и сохранена с именем andreyex_sorted.txt.

Внимание: если вы попытаетесь перенаправить отсортированные данные в один и тот же файл, он сотрет содержимое вашего файла.

sort filename.txt -n> andreyex_sorted.txt

 

Если вы используете команду cat в выходном файле, это будет его содержимое:

1. Debian
2. CentOS
3. Linux 
4. Mint 
5. Ubuntu

 

7. Сортировать определенный столбец [опция -k]

Если в вашем файле есть таблица, вы можете использовать опцию -k, чтобы указать, какой столбец сортировать. Мы добавили несколько произвольных чисел в качестве третьего столбца и будем отображать выходные данные, отсортированные по каждому столбцу. Мы включили несколько примеров, чтобы показать разнообразие возможных результатов. Опции добавляются после номера столбца.

1. Debian 300
2. CentOS 200
3. Linux 100
4. Mint 400
5. Ubuntu 500

sort filename.txt -k 2

 

Это позволит отсортировать текст во втором столбце в алфавитном порядке:

2. CentOS 200
1. Debian 300
3. Linux 100
4. Mint 400
5. Ubuntu 500

 

sort andreyex.txt -k 3n

 

Это позволит отсортировать текст по цифрам в третьем столбце.
3. Linux 100
2. CentOS 200
1. Debian 300
4. Mint 400
5. Ubuntu 500

sort andreyex.txt -k 3nr

То же, что и вышеупомянутая команда, только что порядок сортировки был обратным.

5. Ubuntu 500
4. Mint 400
1. Debian 300
2. CentOS 200
3. Linux 100

 

8. Сортировка и удаление дубликатов [опция -u]

Если у вас есть файл с потенциальными дубликатами, опция -u значительно облегчит вашу жизнь. Помните, что сортировка не будет вносить изменения в исходный файл данных. Мы решили создать новый файл только с элементами, которые являются дубликатами. Ниже вы увидите входные данные, а затем содержимое каждого файла после выполнения команды.

1. Debian
2. CentOS
3. Linux
4. Mint
5. Ubuntu
2. CentOS
3. Linux
4. Mint
1. Debian
3. Linux
5. Ubuntu

 

sort andreyex.txt -u> andreyex_duplicates.txt

 

Вот выходные файлы отсортированы и без дубликатов.

1. Debian
2. CentOS
3. Linux 
4. Mint 
5. Ubuntu

 

9. Игнорировать регистр при сортировке [опция -f]

Многие современные дистрибутивы, работающие с sort, по умолчанию реализуют игнорирование регистра. Если это не так, добавление опции -f даст ожидаемые результаты.

sort andreyex.txt -f

 

Вот вывод, где случаи игнорируются командой sort:

linux
lINux
LinUX
UBuntu
ubuntu
Ubuntu
uBUntu
UBUNTU

 

10. Сортировка по числовым значениям человека [опция -h]

Эта опция позволяет сравнивать буквенно-цифровые значения, такие как 2k (то есть 2000).

sort andreyex.txt -f

 

Вот отсортированный вывод:

20.0
200
2000.0
2k

 

Мы надеемся, что эта статья помогла вам получить базовое использование команды sort в Linux. Если у вас есть какой-нибудь классный трюк, почему бы не поделиться им с нами в разделе комментариев?

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 682

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close