在perl中将文件的位置更改为另一个文件

时间:2018-06-26 10:27:37

标签: perl

我有一个.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文件写入另一个文件,但是位置会有所不同。例如:我要写入的第二个文件应具有从位置10开始到位置16为止具有“ BOSTON”的列。
由于我是perl的新手。有人可以帮我吗?

1 个答案:

答案 0 :(得分:-1)

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]);
}

当然,您需要替换?并可能更改索引的顺序以满足您未指定的格式。