Использование циклов for или while - PullRequest
0 голосов
/ 08 апреля 2010

Каждый месяц создается 4 или 5 текстовых файлов. Данные в файлах загружаются в MS Access и используются в почтовом слиянии.

Каждый файл содержит заголовок. Это пример: HEADER | 0000000130 | 0000527350 | 0000171250 | 0000058000 | 0000756600 | 0000814753 | 0000819455 | 100106

2-е поле - количество записей, содержащихся в файле (исключая строку заголовка). Последнее поле - это дата в форме гггммдд.

Используя gawk (для Windows), я отлично справился с перестановкой / изменением данных и записал все это в новый файл для импорта в Access, за исключением следующего.

Я пытаюсь создать уникальный идентификационный номер для каждой записи. Идентификационный номер имеет вид 1mmddyyXXXX, где XXXX - число, дополненное лидирующими нулями. Используя указанный выше заголовок, первая запись в выходном файле получит идентификационный номер 10106100001, а последняя запись получит идентификатор 10106100130.

Я попытался поместить второе поле в заголовке в переменную, переставить последнее поле заголовка в требуемый формат даты, а затем зациклить с помощью операторов «for», чтобы добавить XXXX часть идентификатора, а затем вывести все это с printf, но до сих пор я был полностью ерундой.

Спасибо за вашу помощь! * 1013 Гэри *

1 Ответ

2 голосов
/ 08 апреля 2010

Вызов awk (1) с опцией «-F |» и используйте следующую инструкцию для установки идентификатора: id = sprintf («1% 02d% 02d% 02d% 04d», substr ($ 9,3,2), substr ($ 9,5,2), substr ($ 9,1,2), NR)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...