Командная строка: Как объединить несколько текстовых файлов в один большой файл и отсортировать в нем строки по алфавиту?
Объединение нескольких текстовых файлов в один и последующая сортировка строк — стандартная задача при работе с командной строкой. Рассмотрим решения для Linux/macOS и Windows.
**Linux / macOS (Bash)**
Для объединения файлов используется команда `cat`, а для сортировки — `sort`. Их можно объединить через конвейер (pipe):
cat file1.txt file2.txt file3.txt | sort > result.txt
Здесь `cat` объединяет содержимое всех перечисленных файлов, `sort` сортирует строки по алфавиту (по умолчанию — в порядке возрастания, с учётом локали), а `> result.txt` записывает результат в новый файл.
Если нужно объединить все `.txt`-файлы в текущей папке, используйте маску:
cat *.txt | sort > result.txt
Для сортировки без учёта регистра добавьте флаг `-f`:
cat *.txt | sort -f > result.txt
Чтобы убрать дублирующиеся строки, добавьте флаг `-u`:
cat *.txt | sort -u > result.txt
Для сортировки в обратном порядке (от Я до А) используйте `-r`:
cat *.txt | sort -r > result.txt
**Windows (командная строка CMD)**
В CMD объединение файлов выполняется через команду `type`, а сортировка — через `sort`:
type file1.txt file2.txt file3.txt | sort > result.txt
Для всех `.txt`-файлов:
type *.txt | sort > result.txt
**Windows (PowerShell)**
В PowerShell задача решается элегантнее:
Get-Content *.txt | Sort-Object | Set-Content result.txt
Для сортировки без учёта регистра:
Get-Content *.txt | Sort-Object { $_.ToLower() } | Set-Content result.txt
**Важные нюансы**
1. Убедитесь, что кодировка всех файлов совпадает (UTF-8, Windows-1251 и т.д.), иначе результат может содержать нечитаемые символы.
2. Если файлы большие, команда `sort` в Linux буферизует данные во временных файлах автоматически.
3. Команда `sort` в Linux учитывает локаль системы — для корректной сортировки кириллицы убедитесь, что установлена нужная локаль (`LC_ALL=ru_RU.UTF-8`).
Таким образом, объединение и сортировка текстовых файлов выполняется буквально одной строкой в любой операционной системе.
