Теперь понятней, но повторить в другой задаче скорее всего не смогу

Разве что какую-то часть.
А как правильно назвать вот то предварительное сохранение в $b?
DIR/B/OD сортирует все *.log и результатом будут только имена файлов(/В) начиная со старых(/OD). Это делается, для того, чтобы получился список с отсортированными строками, в которых найдено совпадение с "%TXT%", и именно последняя была самой новой? Без
получилась бы "каша" ведь?
И еще: если бы нужно было заменить не все что слева, а все что справа, как бы выглядела подстановка
?