|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|
Re: [PLUG] Perl question...
|
Okay, so if you've got whitespace in your field values, something
more like this might work:
while(<FILE>) {
# Even though \s matches tabs, I'm trying to focus on
# multiple whtiespaces OR a tab. I usually have to play around
# with greed to make things like this work effictively. One thing that
# might make a difference is to place a ? after the first * to
minimize the
# amount gobbled up by .*
my($data) =~ /.*(?:\s{2,}|\t)(.*)$/;
}
Andy
Eric wrote:
>Thanks for the suggestion. Unfortunately, some of the data later
>in the file has embedded spaces in the text making split unworkable.
>
>I just went with the fixed column thing and "corrected" the tabs. :-)
>
>Eric
>
>On Tuesday 17 January 2006 9:01 pm, Toby DiPasquale wrote:
>
>
>>On Tue, Jan 17, 2006 at 06:55:22PM -0500, Eric wrote:
>>
>>
>>>I know there are perl hackers about...
>>>
>>>I have a file - a typical line might look like this:
>>>
>>>1 1 1 Ownership FeeSimple
>>>
>>>
>Fee Simple
>
>
>>>The desired data is the last field - indexed by the first three and forget
>>>
>>>
>the
>
>
>>>other two. The "hitch", if you will, is that I'm using unpack to get the
>>>fields like this:
>>>
>>>#!/usr/local/bin/perl
>>>open EAT, "<Translation.txt" or die "bummer dude - no file?\n" ;
>>>while (<EAT>) {
>>> ($f1, $f2, $f3, $junk, $junk2, $data) = unpack("a10, a9, a8, a26, a18,
>>>
>>>
>a35 ", $_) ;
>
>
>>> print $data ;
>>>}
>>>
>>>
>>I don't know about Perl, but in Ruby this is:
>>
>>#!/usr/bin/env ruby
>>IO.foreach("Translation.txt") do |line|
>> f1, f2, f3, j1, j2, data = line.split
>> puts data
>>end
>>
>>I believe that Perl has a split() function, as well. Maybe use that
>>instead of unpack?
>>
>>--
>>Toby DiPasquale
>>___________________________________________________________________________
>>Philadelphia Linux Users Group -- http://www.phillylinux.org
>>Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
>>General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
>>
>>
>>
>>
>>
>
>
>
--
Andrew Libby
alibby@philadelphiariders.com
http://philadelphiariders.com/
Motorcycle Enthusiasm, Philadelphia Style
1999 SV650
1999 Laverda 750S
1996 BMWR1100RS
1981 Moto Guzzi CX100 (in Lemans I clothing)
___________________________________________________________________________
Philadelphia Linux Users Group -- http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
|
|