изменение положения файла на другой в Perl - PullRequest
0 голосов
/ 26 июня 2018

У меня есть файл .dta, который содержит вывод ниже

1600000000000   00000000000   060218                                    BOSTON       MA 15000060000000000000000F5466160239558164
1600000000000   00000000000   060718                                    BOSTON       MA 15000070000000000000000N379809904781009
1600000000000   00000000000   060818                                    BOSTON       MA 15000080000000000000000N372512000987069
1600000000000   00000000000   060918                                    BOSTON       MA 15000090000000000000000F5466307589134928

Начальная позиция поля "BOSTON" равна 74, а конечная позиция равна 80, его длина равна 6. Я хочу записать столбец с надписью "BOSTON" из файла .dta в другой файл, но позиция будет другой , Например: второй файл, в который я хочу записать, должен иметь столбец, содержащий «BOSTON» от начальной позиции 10 и конечной позиции 16.
Так как я новичок в Perl. Кто-нибудь может мне помочь с этим?

1 Ответ

0 голосов
/ 27 июня 2018
while (<>) {
   chomp;
   my @fields = unpack('A16 A14 A42 A13 A3 A*', $_);
   say pack('A? A? A? A? A? A*', @fields[0,1,2,3,4,5]);
}

Конечно, вам нужно заменить ? и, возможно, изменить порядок индексов в соответствии с вашим неуказанным форматом.

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