Поиск по сайту:

Учебник по командам sort в Linux для начинающих (8 примеров)


На этой странице

  1. Команда сортировки Linux
  2. Q1. Как использовать команду сортировки?
  3. Вопрос 2. Как заставить сортировку игнорировать начальные пробелы?
  4. Вопрос 3. Как заставить сортировку игнорировать регистр?
  5. Q4. Как сделать сортировку по сравнению чисел?
  6. В5. Как заставить сортировку работать с удобочитаемыми числовыми значениями?
  7. Q6. Как сделать так, чтобы сортировка проверяла только отсортированный ввод?
  8. Q7. Как заставить сортировку объединять уже отсортированные файлы?
  9. Q8. Как заставить sort записать результат в файл?
  10. Заключение

Ищете утилиту командной строки для сортировки содержимого в текстовых файлах? Посмотрите не дальше, чем Sort, инструмент, специально созданный для этой цели. В этом уроке мы обсудим эту команду, используя несколько простых для понимания примеров. Но прежде чем мы это сделаем, стоит упомянуть, что все приведенные здесь примеры были протестированы на компьютере с Ubuntu 22.04 LTS.

Команда сортировки Linux

Команда Sort позволяет сортировать строки в текстовом файле. Ниже приведен его синтаксис:

sort [OPTION]... [FILE]...

А вот как это описывает справочная страница инструментов:

Write sorted concatenation of all FILE(s) to standard output.
With no FILE, or when FILE is -, read standard input.

Ниже приведены несколько примеров в стиле вопросов и ответов, которые должны дать вам хорошее представление о том, как работает команда сортировки.

Q1. Как использовать команду сортировки?

Предположим, у вас есть файл, содержащий несколько имен, и вы хотите отсортировать их в алфавитном порядке. Затем все, что вам нужно сделать, это передать имя файла в качестве входных данных для команды сортировки.

Например:

sort file1

Итак, если файл 1 содержит следующие строки:

Zimbabwe
Serbia
Norway
Australia

Тогда вывод будет:

Australia
Norway
Serbia
Zimbabwe

Вот пример:

Q2. Как заставить сортировку игнорировать начальные пробелы?

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

Предположим, что файл содержит следующие строки:

Zimbabwe
 Serbia
  Norway
Australia

И вы запускаете sort только для того, чтобы увидеть следующий результат:

  Norway
 Serbia
Australia
Zimbabwe

Это может показаться неожиданным, но на самом деле произошло то, что строки, содержащие начальные пробелы, были отсортированы на основе пробелов, а другие отсортированы по алфавиту. Чтобы убедиться, что команда Sort игнорирует начальные пробелы, используйте параметр -b. Итак, в этом случае вы получите следующий результат:

Australia
  Norway
 Serbia
Zimbabwe

Q3. Как заставить сортировку игнорировать регистр?

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

Например:

sort -f file1

Q4. Как сделать сортировку по сравнению чисел?

Предположим, файл содержит только числа, и вы хотите отсортировать их по порядку. Затем это можно сделать с помощью параметра командной строки -g.

sort -g file1

Например, файл со следующим содержимым:

32000
2500
50000
54

Можно отсортировать с помощью команды sort для получения следующих результатов:

54
2500
32000
50000

Q5. Как заставить сортировку работать с удобочитаемыми числовыми значениями?

Если вы хотите, чтобы sort работала с удобочитаемыми числовыми значениями, такими как 1K, 2G и т. д., используйте параметр командной строки -h.

sort -h file1

Так, например, файл со следующими строками:

1M
2G
3K

Можно отсортировать следующим образом с помощью параметра -h:

3K
1M
2G

Q6. Как сделать так, чтобы сортировка проверяла только отсортированный ввод?

На всякий случай, если вы хотите, чтобы sort только проверяла, отсортирован ли файл или нет, используйте параметр командной строки -c.

sort -c file1

Например, если файл1 содержит следующие строки:

dhg
lkh
zyb
abd

Затем с помощью -c вы увидите, что сортировка производит следующий вывод:

sort: file1:4: disorder: abd

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

Q7. Как заставить сортировку объединять уже отсортированные файлы?

Если вы хотите, чтобы sort объединила два уже отсортированных файла, используйте параметр командной строки -m.

sort -m file1 file2

Например, в моем случае и файл1, и файл2 содержали следующие строки:

abd
dhg
lkh
zyb

А вот как опция -m объединила эти файлы:

abd
abd
dhg
dhg
lkh
lkh
zyb
zyb

Q8. Как заставить sort записать результат в файл?

По умолчанию команда sort записывает вывод в STDOUT. Однако вы можете заставить его писать в заданный файл, используя опцию -o.

Например:

sort file1 -o output.txt

Заключение

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