Хороший программист обычно стремится улучшить свой код
...я не претендую на лучшее решение в данном случае...
Про сортировку автор же уже сказал что она есть в исходном файле, и "собирать разбросанные" не нужно
Жаль что не претендуете.
То есть с каждой следующей строки скрипт проверяет предыдущий массив и если категории различаются, то перед название продукта он добавляет категорию. Символ "!" означает уровень вложенной категории.
ну так и делать. проверять в следующей строке, не поменялась ли одна из категорий
для этого по завершении итерации запоминать текущую категорию в переменную.
Продукт 1; Воздуховоды/Прямоугольные/Оцинкованные;
Продукт 2; Воздуховоды/Круглые/Нержавеющие;
Продукт 3; Воздуховоды/Прямоугольные/Оцинкованные;
Продукт 4; Воздуховоды/Круглые/Нержавеющие;
Продукт 5; Воздуховоды/Прямоугольные/Оцинкованные;
Продукт 6; Воздуховоды/Круглые/Нержавеющие;
Вот:
Docker. Docker-compose. Запуск через cron. Как?