Line Sorter

Сортировка строк по алфавиту, по длине, обратная или случайная сортировка

Попробовать пример

Входные строки

Отсортированные строки

Работает локально · Безопасно вставлять секреты
Отсортированные строки появятся здесь…

Что такое сортировка строк?

Сортировка строк — это процесс перестановки строк текстового блока по определённому правилу: алфавитному порядку, обратному порядку, длине строки или случайному перемешиванию. Онлайн-сортировка строк — распространённая задача при работе с лог-файлами, данными CSV, списками настроек или любым текстовым содержимым, где важен порядок. Операция разбивает текст по символам новой строки, применяет функцию сравнения к полученному массиву и объединяет отсортированные строки обратно.

Большинство языков программирования сортируют строки с использованием лексикографического сравнения по умолчанию, которое сравнивает символы по их кодовым точкам Unicode. Это означает, что символы верхнего регистра сортируются раньше строчных («Banana» перед «apple»), а цифры — раньше букв. Локаль-зависимая сортировка, иногда называемая естественной сортировкой или коллацией, устраняет это, применяя языковые правила. Методы JavaScript localeCompare(), Python locale.strxfrm() и POSIX-команда sort с LC_COLLATE обеспечивают локаль-зависимый порядок.

Сортировка по длине полезна, когда нужно найти самые короткие или длинные записи в списке, выявить выбросы в лог-выводе или упорядочить элементы по сложности. Обратная сортировка переворачивает текущий порядок строк без переупорядочивания — это отличается от алфавитной сортировки Z-A. Случайное перемешивание присваивает каждой строке случайный ключ сортировки, создавая разный порядок при каждом запуске. Переключение между режимами на одном вводе быстрее, чем написание одноразового скрипта.

Зачем использовать этот инструмент?

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

Мгновенная сортировка
Результаты появляются по мере ввода или вставки текста. Переключайтесь между шестью режимами сортировки и сравнивайте вывод без повторного запуска.
🔒
Обработка без передачи данных
Вся сортировка выполняется в вашем браузере с помощью JavaScript. Текст остаётся на вашем устройстве. Ничего не передаётся на сервер и не записывается в журналы.
🔀
Шесть режимов сортировки
A-Z, Z-A, сначала короткие, сначала длинные, обратный порядок и случайное перемешивание. Один инструмент охватывает наиболее распространённые задачи упорядочивания строк.
📋
Без регистрации
Откройте страницу и начните сортировку. Никакой регистрации, расширений или десктопных приложений. Работает на любом устройстве с современным браузером.

Сценарии использования Line Sorter

Фронтенд-разработка
Сортируйте списки CSS-классов, инструкции import или ключи переводов i18n по алфавиту. Единообразный порядок уменьшает конфликты слияния в системе контроля версий и ускоряет код-ревью.
Бэкенд-разработка
Упорядочивайте списки зависимостей в package.json, requirements.txt или go.mod перед коммитом. Сортируйте имена столбцов SQL при построении инструкций CREATE TABLE или сравнении различий схем.
DevOps и инфраструктура
Сортируйте имена переменных окружения в файлах .env, записи Kubernetes ConfigMap или блоки переменных Terraform. Алфавитный порядок помогает выявить дубликаты и пропущенные значения при проверке.
QA и автоматизация тестирования
Сортируйте логи вывода тестов по временной метке или сообщению для быстрого выявления сбоев. Перемешивайте входные тестовые данные, чтобы убедиться, что поведение приложения не зависит от порядка вставки.
Инженерия данных
Упорядочивайте заголовки CSV или списки столбцов перед написанием скриптов миграции схемы. Сортируйте строки выборки данных по длине, чтобы найти усечённые строки или необычно длинные значения в конвейере данных.
Студенты и учащиеся
Сортируйте словарные списки, библиографические записи или учебные заметки по алфавиту. Перемешивайте строки карточек для случайных сессий повторения без установки отдельного приложения.

Справочник по режимам сортировки строк

Инструмент поддерживает шесть режимов сортировки. В таблице ниже описан каждый режим, используемый метод сравнения и пример результата для входного списка: яблоко, банан, вишня, финик, инжир.

РежимОписаниеМетод JSПример вывода
A-ZAlphabetical ascendinglocaleCompare()apple, banana, cherry
Z-AAlphabetical descendinglocaleCompare() reversedcherry, banana, apple
Length (short)Shortest line firsta.length - b.lengthfig, date, apple, banana
Length (long)Longest line firstb.length - a.lengthbanana, apple, date, fig
ReverseFlip line order, no reorderingArray.reverse()Last line becomes first
RandomRandomized comparator (biased)Math.random() - 0.5Different every run

Алгоритмы сортировки под капотом

При вызове Array.sort() в JavaScript движок V8 (Chrome, Node.js) использует Timsort начиная с 2019 года. Другие среды выполнения используют иные алгоритмы. В таблице ниже сравниваются наиболее распространённые алгоритмы сортировки, применяемые в стандартных библиотеках языков. Все они справляются с задачами сортировки строк в этом инструменте менее чем за миллисекунду для типичных объёмов (до 100 000 строк).

АлгоритмИспользуется вВремяПримечания
TimsortPython, Java (Arrays.sort)O(n log n)Stable, fast on partially sorted data
QuicksortC stdlib, V8 (older)O(n log n)In-place, unstable by default
Merge sortMost stable-sort implementationsO(n log n)Stable, predictable, uses extra memory
IntrosortC++ std::sort, .NETO(n log n)Hybrid: quicksort + heapsort fallback
Radix sortFixed-length keys, integersO(nk)Non-comparative, linear for short keys

Примеры кода

Сортировка строк программным способом на JavaScript, Python, Go и в командной строке. Каждый пример охватывает алфавитную, сортировку по длине и обратную сортировку.

JavaScript
const text = `banana
apple
cherry
date
fig`

// Sort A-Z (locale-aware)
const az = text.split('\n').sort((a, b) => a.localeCompare(b)).join('\n')
// → "apple\nbanana\ncherry\ndate\nfig"

// Sort by line length, shortest first
const byLen = text.split('\n').sort((a, b) => a.length - b.length).join('\n')
// → "fig\ndate\napple\nbanana\ncherry"

// Reverse line order (no alphabetical sorting)
const reversed = text.split('\n').reverse().join('\n')
// → "fig\ndate\ncherry\napple\nbanana"

// Remove duplicates and sort
const unique = [...new Set(text.split('\n'))].sort().join('\n')
Python
text = """banana
apple
cherry
date
fig"""

lines = text.splitlines()

# Sort A-Z (case-insensitive)
az = sorted(lines, key=str.lower)
# → ['apple', 'banana', 'cherry', 'date', 'fig']

# Sort by line length
by_len = sorted(lines, key=len)
# → ['fig', 'date', 'apple', 'banana', 'cherry']

# Reverse original order
rev = lines[::-1]
# → ['fig', 'date', 'cherry', 'apple', 'banana']

# Shuffle randomly
import random
random.shuffle(lines)  # modifies in place
Go
package main

import (
	"fmt"
	"sort"
	"strings"
)

func main() {
	text := "banana\napple\ncherry\ndate\nfig"
	lines := strings.Split(text, "\n")

	// Sort A-Z
	sort.Strings(lines)
	fmt.Println(strings.Join(lines, "\n"))
	// → apple\nbanana\ncherry\ndate\nfig

	// Sort by length
	sort.Slice(lines, func(i, j int) bool {
		return len(lines[i]) < len(lines[j])
	})
	fmt.Println(strings.Join(lines, "\n"))
	// → fig\ndate\napple\nbanana\ncherry
}
CLI (bash)
# Sort lines A-Z
sort file.txt

# Sort lines Z-A (reverse)
sort -r file.txt

# Sort numerically (first field)
sort -n data.txt

# Sort by line length (awk + sort + cut)
awk '{ print length, $0 }' file.txt | sort -n | cut -d' ' -f2-

# Shuffle lines randomly
shuf file.txt          # GNU coreutils
sort -R file.txt       # alternative (not truly uniform)

# Sort and remove duplicates
sort -u file.txt

Часто задаваемые вопросы

В чём разница между сортировкой A-Z и натуральной сортировкой?
Сортировка A-Z (лексикографическая) сравнивает символы по кодовым точкам Unicode. Это означает, что «item10» сортируется раньше «item2», поскольку символ «1» имеет меньшую кодовую точку, чем «2». Натуральная сортировка обрабатывает встроенные числа как числовые значения, поэтому «item2» идёт перед «item10». Этот инструмент использует лексикографическую сортировку с учётом локали через localeCompare(), которая правильно обрабатывает символы с диакритическими знаками, но не выполняет натуральную сортировку чисел.
Отправляется ли мой текст на сервер при сортировке строк?
Нет. Вся сортировка происходит в вашем браузере с использованием метода Array.sort() JavaScript. Текст никогда не покидает ваше устройство. Вы можете убедиться в этом, открыв вкладку «Сеть» в DevTools браузера и подтвердив, что при вставке и сортировке текста никаких запросов не выполняется.
Сколько строк может обработать этот инструмент?
Инструмент хорошо работает с десятками тысяч строк. Реализация Timsort в V8 обрабатывает 100 000 строк менее чем за 100 миллисекунд на современном оборудовании. Для файлов размером больше нескольких мегабайт CLI-инструмент, такой как команда sort в Unix, эффективнее, поскольку может использовать сортировку слиянием на диске и несколько потоков.
Как работает сортировка без учёта регистра?
Этот инструмент использует String.localeCompare() с параметром { sensitivity: 'base' }, что делает сравнение нечувствительным к регистру: «Apple» и «apple» сортируются вместе, а не в отдельных группах. По умолчанию localeCompare() чувствителен к регистру; явный параметр необходим для поведения без учёта регистра. Если нужна строгая сортировка с учётом регистра, где заглавные буквы идут первыми, команда sort в Unix без флага -f обеспечивает такое поведение.
Можно ли одновременно сортировать строки и удалять дубликаты?
Этот инструмент сортирует строки, но не удаляет дубликаты. Для удаления дублирующихся строк используйте инструмент Duplicate Line Remover в той же категории. Можно сначала отсортировать текст здесь, затем вставить результат в инструмент удаления дубликатов и получить чистый, уникальный, отсортированный список.
В чём разница между обратной сортировкой и сортировкой Z-A?
Обратная сортировка переворачивает исходный порядок строк: последняя строка становится первой, предпоследняя — второй, и так далее. Алфавитное сравнение не выполняется. Сортировка Z-A упорядочивает строки в убывающем алфавитном порядке независимо от их исходного положения. Если входные данные уже отсортированы A-Z, обратная сортировка и Z-A дают одинаковый результат, но для неотсортированных данных результаты различаются.
Как сортировать строки по определённому столбцу или полю?
Этот инструмент сортирует по всему содержимому строки. Для сортировки по конкретному столбцу (например, второму полю в файле с разделителями табуляции) используйте команду sort в Unix с флагом -k: sort -t$'\t' -k2,2 file.txt. В Python разбейте каждую строку и используйте функцию ключа: sorted(lines, key=lambda x: x.split('\t')[1]).