Учебник по командам sort в Linux для начинающих (8 примеров)
На этой странице
- Команда сортировки Linux
- Q1. Как использовать команду сортировки?
- Вопрос 2. Как заставить сортировку игнорировать начальные пробелы?
- Вопрос 3. Как заставить сортировку игнорировать регистр?
- Q4. Как сделать сортировку по сравнению чисел?
- В5. Как заставить сортировку работать с удобочитаемыми числовыми значениями?
- Q6. Как сделать так, чтобы сортировка проверяла только отсортированный ввод?
- Q7. Как заставить сортировку объединять уже отсортированные файлы?
- Q8. Как заставить sort записать результат в файл?
- Заключение
Ищете утилиту командной строки для сортировки содержимого в текстовых файлах? Посмотрите не дальше, чем 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
Заключение
Команда «Сортировка» предоставляет множество параметров. Здесь мы обсудили несколько ключевых. Мы предлагаем вам сначала попрактиковаться в этом, а когда вы закончите, перейдите на справочную страницу команд, чтобы узнать больше об этом.