Имею базу в формате txt размером 2gb, как отсортировать по количеству символов на строку?
Для таких операций уже несколько десятилетий в linux существует утилита awk со своим языком программирования (он достаточно простой хоть и странный), так же можно соорудить регулярное выражение и с помощью утилиты sed или grep, несколькими проходами пройти по файлу, и сначала вывести все короткие строки, вторым проходом все длинные.

так же можно написать приложение на любом языке программирования, построчно читать файл, измерять длину строки или какое тебе нужно условие и записывать в нужный файл, кода строк на 5-6
Это задача на смекалку. Тут на самом деле сортировать не надо. Тут нужен роутинг слов в разные файлы.
В 1 проход делается. Разумеется мы должны предполагать что в 2Гб файле будут не сильно длинные строки.

Допустим для среднего текстового файла 80 символов на строку (стандарт такой был в 20м веке) мы получим
80 файлов.

По смыслу это похоже на сортировку подсчетом. Это когда кардинальность выборки крайне низка. Гендер например.