Пустая строка не содержит символов, а строка из пробелов может содержать пробелы, табуляцию или другие Unicode-разделители. Удалять ли её, зависит от выбранного преобразования. ListClean показывает зависимость явно: сначала идёт обрезка, поэтому строка из пробелов становится пустой только при включённой обрезке; затем удаление пустых решает, останется ли она.
Обрезка меняет только края
Для строки ` North Hall ` обрезка даёт `North Hall`, а пробел между словами остаётся. Это не схлопывание пробелов, которое могло бы изменить идентификаторы, выравнивание или важное форматирование. ListClean намеренно не меняет внутренние группы. Счётчик показывает число изменённых строк, а не удалённых символов.
Удаление пустых зависит от обрезанного значения
Без обрезки строка из трёх пробелов считается данными и переживает удаление пустых, потому что не является пустой строкой. С обрезкой она становится пустой и удаляется, если выбран соответствующий параметр. Порядок фиксирован для всех страниц и языков. Счётчик пустых отражает строки, удалённые после решения об обрезке.
Переносы строк нормализуются прозрачно
Windows CRLF и одиночные CR нормализуются в LF до разделения элементов. Один финальный перенос не создаёт призрачный элемент; два финальных переноса означают одну настоящую пустую строку перед концом. Результат всегда использует LF. ListClean не распознаёт CSV-записи или переносы в кавычках: каждый физический перенос является границей.