Bash скрипт сортировки полупроводок по дням
Будет цикл задач по последовательному переливанию данных из одного формата в другой. Требуется разработчик, хорошо знакомый с bash, чтобы реализовать их на высоком уровне производительности. Каждая задача - отдельный заказ.
Задача 1.
Нужно рассортировать полупроводки по дням.
Результат работ - скрипт htr001_to_htr001d.sh, который конвертирует файл {name1}.htr001 в множество файлов {name}_YYYYMMDD.htr001d
Есть рабочая заготовка скрипта которая будет передана исполнителю. Она была реализована нашим администратором, но работает слишком медленно.
Операционная система AIX 6.1.
(bash там не совсем полноценный, например не работает инструкция подстроки ${var:0:5})
Размер входящего файла от 1 до 100gb. Частично отсортирован по дням.
Скрипт должен предусматривать возможность экстренной остановки, без kill. При запуске скрипта, один из параметров - сигнальный файл. Периодический скрипт должен проверять его наличие, и если файла больше нет, то нужно почистить все временные файлы и остановиться.
Общие конвенции формата:
Конвенция 1:
Разделитель TAB;
Все управляющие символы в строках заменены на пробелы;
Все строки обработаны TRIM();
Десятичный разделитель точка;
Лишние нули и точки в числах убраны (10.10000 , 10.);
Даты - YYYYMMDD;
Последняя строка обязательно заканчивается переходом на новую строку;
Форматы:
Htr001 - half transactions
Конвенция 1
Поля: ДатаПроводки, Счёт, Часть(0-debet,1-credit), КлючИсточника
, КодВалютыISO, СуммаПроводки, СуммаПроводкиВВалюте
Htr001d - half transactions by days
Конвенция 1
Поля: Счёт, Часть(0-debet,1-credit), КлючИсточника(число), КодВалютыISO, СуммаПроводки, СуммаПроводкиВВалюте
Данные должны быть отсортированы по Счёт, Часть, КлючИсточника
Package File:Имя файла, дата, hash, минимальный ключ, максимальный ключ