我有一个.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的新手。有人可以帮我吗?
答案 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]);
}
当然,您需要替换?
并可能更改索引的顺序以满足您未指定的格式。