I have a data file that looks like this:
uSF1 MD15000000 009214935522451020 9 0101001
88722397N07209999900
116759 0Block Group 1
S 1158 662+39283007-076574503
uSF1 MD15000000 009215035522451020 9 0101002
88722397N07209999900
109338 0Block Group 2
S 842 547+39280857-076573636
uSF1 MD15000000 009215135522451020 9 0101003
88722397N07209999900
182248 135142Block Group 3
S 920 442+39279557-076574311
This is actually three lines that all start with 'uSF1'. This is the
Summary File from the US 2000 Census. I want to print all the census
tracts and blockgroup numbers for FIPS state code = "24" (Maryland) and
FIPS county code "510" (Baltimore City) for summary level '150'. These
are all fixed-length records. I tried:
[EMAIL PROTECTED] UScensus]$ perl -ne '($tract, $bg) =
/^.{8}150.{18}24510.{21}(.{6})(.)/; print "Tract $tract BLKGRP $bg\n";'
mdgeo.uf1 |head
Tract BLKGRP
Tract BLKGRP
Tract BLKGRP
<snip>
I thought that this would:
skip 8 characters and match '150'
skip 19 more characters and match '24' and '510'
skip 21 more characters and capture the next 6 in $tract
capture the next character in $bg
and print them.
The first two matches work, but nothing is captured. Any ideas what I'm
doing wrong?
Thanks for your help and advice.
-Kevin
Kevin Zembower
Internet Services Group manager
Center for Communication Programs
Bloomberg School of Public Health
Johns Hopkins University
111 Market Place, Suite 310
Baltimore, Maryland 21202
410-659-6139
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/