Re: Please help parsing file [sed, awk, fortran, bash]
On Friday 31,August,2012 11:22 AM, Richard Owlett wrote:
> lina wrote:
>> On Friday 31,August,2012 08:35 AM, Richard Owlett wrote:
>>> daniel jimenez apparently described a *HOMEWORK* problem:
>>>> Hello all,
>>>>
>>>> I need some help fixing the format of some pretty strangely
>>>> compressed data files. An example would be like this:
>>>>
>>>> 2883
>>>> 452
>>>> 07
>>>> 16
>>>> 2
>>>> 4
>>>> 6
>>>> 107
>>>>
>>>> Parsing rules:
>>>> The first two lines should be ignored.
>>>> The first column is the 'index', the second column being the
>>>> 'counter'.
>>>> If there is no second number (ex. index=2), then the second
>>>> number should be set to '1'.
>>>> If there the index skips (ex. from index=2 to index=4), then
>>>> the indexes which where skipped should be set to '0'
>>>> Max index is 1024.
>>
>> Here is:
>>
>> $ more test
>> 2883
>> 452
>> 0 7
>> 1 6
>> 2
>> 4
>> 6
>> 10 7
>>
>>
>>
>> #!/usr/bin/env perl
>>
>> use strict;
>> use warnings;
>> use autodie qw(open close);
>>
>> my $fn="test";
>>
>> open my $fh, '<', $fn;
>>
>> my %h;
>> my %full_h;
>>
>> while(<$fh>){
>> next;next; ## to skip the first two lines
>> my @pairs=split " ",$_;
>>
>> $h{$pairs[0]}=$pairs[1] if(scalar (@pairs)>1);
>> $h{$pairs[0]}=1 if(scalar (@pairs) == 1);
>> }
>>
>> for (my $count=1; $count<=1024; $count++){
>> $full_h{$count}=$h{$count} if exists $h{$count};
>> $full_h{$count}=0 if(!exists $h{$count});
>> }
>>
>> print map "$_ $full_h{$_}\n", sort keys %full_h;
>>
>> __OUTPUT__
>>
>> $ ./try
>> 1 0
>> 10 0
>> 2 0
>> 3 0
>> 4 0
>> 5 0
>> 6 0
>> 7 0
>> 8 0
>> 9 0
>>
>> I am not good at programming, so perhaps someone else will provide some
>> smart codes.
>>
>>
>> Best regards,
>>
>
> But should OP not do his own homework?
>
> Or b i 1/2 century too olde?
I take the blame, sorry.
Best regards,
>
>
Reply to:
- References:
- Please help parsing file [sed, awk, fortran, bash]
- From: daniel jimenez <daniel.jimenez.gomez@gmail.com>
- Re: Please help parsing file [sed, awk, fortran, bash]
- From: Richard Owlett <rowlett@cloud85.net>
- Re: Please help parsing file [sed, awk, fortran, bash]
- From: lina <lina.lastname@gmail.com>
- Re: Please help parsing file [sed, awk, fortran, bash]
- From: Richard Owlett <rowlett@cloud85.net>