Andrew Libby on 18 Jan 2006 13:30:04 -0000


[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