Linux. Команда sort
Команда sort сортирует содержимое файла в алфавитном или нумерологическом порядке. Если задать несколько файлов, то команда соединит их и, рассортировав, выдаст единым списком.
Рассмотрим несколько примеров.
$ cat linux.txt Ubuntu Redhat Centos Centos Debian Fedora
$ sort linux.txt Centos Centos Debian Fedora Redhat Ubuntu
Опция -u предписывает команде sort исключить дубликаты строк.
$ sort -u linux.txt Centos Debian Fedora Redhat Ubuntu
Опция -r позволяет изменить порядок сортировки на обратный.
$ sort -r linux.txt Ubuntu Redhat Fedora Debian Centos Centos
Опция -o перенаправляет вывод команды в файл.
$ sort linux.txt -o sorted.txt $ cat sorted.txt Centos Centos Debian Fedora Redhat Ubuntu
Зачастую требуется отсортировать строки в файле, заменив в нем первоначальные данные отсортированными. Но если ввести команду:
то содержимое файла filename будет очищено. А с помощью опции -o вполне допустимо указывать одно и то же имя входного и выходного файла.
Опция -n используется, когда нужно сортировать числа, а опция -k позволяет задавать столбец (колонку) сортировки.
$ cat phonebook.txt Alice Chebba 973-555-2015 12 Barbara Swingle 201-555-9257 -5 Liz Stachiw 212-555-2298 21 Susan Goldberg 201-555-7776 17 Susan Topple 212-555-4932 -3 Tony Iannino 973-555-1295 11
Сортировка по второй колонке (фамилия):
$ sort -k2 phonebook.txt Alice Chebba 973-555-2015 12 Susan Goldberg 201-555-7776 17 Tony Iannino 973-555-1295 11 Liz Stachiw 212-555-2298 21 Barbara Swingle 201-555-9257 -5 Susan Topple 212-555-4932 -3
Сортировка по последней колонке, по возрастанию чисел:
$ sort -k4n phonebook.txt Barbara Swingle 201-555-9257 -5 Susan Topple 212-555-4932 -3 Tony Iannino 973-555-1295 11 Alice Chebba 973-555-2015 12 Susan Goldberg 201-555-7776 17 Liz Stachiw 212-555-2298 21
Опция -k позволяет указать не только колонку, по которой надо сортировать — но и номер символа в этой колонке — например -k2.5 . Это значит — сортировать по второй колонке, но не учитывать символы с первого по четвертый.
По умолчанию команда sort считает, что колонки разделяются символами пробела или табуляции. Опция -t позволяет задать другой разделитель.
Опция -b игнорирует пробелы в начале строк.
Опция -f отменяет чувствительность к регистру.
Опция -d признает только буквы, цифры и пробелы и сортирует как в словаре.
$ sort --help Использование: sort [ПАРАМЕТР]… [ФАЙЛ]… или: sort [ПАРАМЕТР]… --files0-from=Ф Печатает сортированное слияние всех ФАЙЛ(ов) на стандартный вывод. Если ФАЙЛ не задан или задан как -, читает стандартный ввод. Аргументы, обязательные для длинных параметров, обязательны и для коротких. Параметры, задающие порядок: -b, --ignore-leading-blanks игнорировать начальные пропуски -d, --dictionary-order рассматривать только пропуски, буквы и цифры -f, --ignore-case игнорировать регистр букв -g, --general-numeric-sort сравнивать в соответствии с общим числовым значением -i, --ignore-nonprinting рассматривать только печатные символы -M, --month-sort сравнивать (неизвестно) < «JAN» < … < «DEC» -h, --human-numeric-sort сравнивать числа в удобном для человека виде (например, 2K 1G) -n, --numeric-sort сравнивать по числовым значениям строк -R, --random-sort перетасовать, но группировать одинаковые параметры, смотрите shuf(1) --random-source=ФАЙЛ брать случайные байты из ФАЙЛА -r, --reverse изменить результаты сравнения на противоположные --sort=СЛОВО сортировать согласно СЛОВУ: general-numeric -g, human-numeric -h, month -M, numeric -n, random -R, version -V -V, --version-sort сортировать по номерам (версии) в текстовом представлении Другие параметры: --batch-size=NMERGE объединять не более чем NMERGE ввода за раз; для большего — использовать временные файлы -c, --check, --check=diagnose-first проверять, сортированы ли входные файлы; сортировка не выполняется -C, --check=quiet, --check=silent как -c, но не сообщать о первой плохой строке --compress-program=ПРОГ сжимать временные файлы командой ПРОГ; разжимать командой ПРОГ -d --debug комментировать часть строки, используемой для сортировки и предупреждать о сомнительном использовании в stderr --files0-from=Ф читать ввод из файлов, имена которых (завершённые нулем) перечислены в файле Ф. Если Ф равно -, то читать имена файлов из стандартного ввода -k, --key=ОПР_КЛЮЧА сортировать по ключу; в ОПР_КЛЮЧА задано расположение и тип -m, --merge объединить уже отсортированные файлы, сортировку не выполнять -o, --output=ФАЙЛ выводить в ФАЙЛ, а не на стандартный вывод -s, --stable стабилизировать сортировку, исключив проверку на равенство -S, --buffer-size=РАЗМЕР использовать в основной памяти буфер указанного РАЗМЕРА -t, --field-separator=РАЗДЕЛИТЕЛЬ использовать при поиске ключевых полей РАЗДЕЛИТЕЛЬ, а не переход от непробельных символов к пробельным -T, --temporary-directory=КАТАЛОГ использовать для временных файлов КАТАЛОГ, а не $TMPDIR или /tmp; несколько таких параметров задают несколько каталогов --parallel=N изменить количество одновременно запущенных сортировок до N -u, --unique с -c, проверять порядок строго; без -c, выводить только первое среди нескольких равных -z, --zero-terminated разделитель строк NUL, а не символ новой строки --help показать эту справку и выйти --version показать информацию о версии и выйти ОПР_КЛЮЧА задается как F[.C][OPTS][,F[.C][OPTS]] для начала и конца положения, где F — номер поля, а C — позиция в поле, оба отсчитываются от 1, а конечная позиция по умолчанию равна концу строки. Если не задан параметр -t или -b, то символы в поле отсчитываются от начала предшествующего пробельного символа. OPTS составляется из одной или нескольких букв, задающих порядок сортировки [bdfgiMhnRrV]; он переопределяет соответствующие глобальные параметры сортировки для данного ключевого поля. Если параметр не задан, то в качестве ключа используется строка целиком. Для обнаружения использования некорректного ключа укажите --debug. После РАЗМЕРА можно указывать следующие суффиксы-мультипликаторы: % 1% памяти, b 1, k 1024 (по умолчанию), и так далее для M, G, T, P, E, Z, Y. ПРЕДУПРЕЖДЕНИЕ Установленная в окружении локаль влияет на порядок сортировки. Чтобы получить традиционный порядок, использующий системные значения байт, установите LC_ALL=C.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
- 1С:Предприятие (31)
- API (29)
- Bash (43)
- CLI (99)
- CMS (139)
- CSS (50)
- Frontend (75)
- HTML (66)
- JavaScript (150)
- Laravel (72)
- Linux (143)
- MySQL (76)
- PHP (125)
- React.js (66)
- SSH (27)
- Ubuntu (66)
- Web-разработка (509)
- WordPress (73)
- Yii2 (69)
- БазаДанных (95)
- Битрикс (66)
- Блог (29)
- Верстка (43)
- ИнтернетМагаз… (84)
- КаталогТоваров (87)
- Класс (30)
- Клиент (27)
- Ключ (28)
- Команда (68)
- Компонент (60)
- Конфигурация (59)
- Корзина (32)
- ЛокальнаяСеть (28)
- Модуль (34)
- Навигация (31)
- Настройка (137)
- ПанельУправле… (29)
- Плагин (33)
- Пользователь (26)
- Практика (99)
- Сервер (74)
- Событие (27)
- Теория (104)
- Установка (65)
- Файл (47)
- Форма (58)
- Фреймворк (192)
- Функция (36)
- ШаблонСайта (68)