For Programmers: Free Programming Magazines  


Home > Archive > AWK > May 2004 > Fill in value from previous line









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Fill in value from previous line
Mike

2004-05-12, 7:19 pm

Hello,

I need to fill in fields with values from a previous line, but *only*
when they are empty.

So, the following lines

41.log: Asn 31A CA ... Hmg 401A N6A ... 4.81
41.log: ... Hmg 401A C6A ... 4.67
41.log: ... Hmg 401A N1A ... 4.19
41.log: ... Hmg 401A C2A ... 4.50
41.log: Asn 31A CB ... Hmg 401A N6A ... 4.28
41.log: ... Hmg 401A C6A ... 4.15
41.log: ... Hmg 401A N1A ... 3.39
41.log: ... Hmg 401A C2A ... 3.85
41.log: ... Hmg 401A N3A ... 4.95

should be converted to

41.log: Asn 31A CA ... Hmg 401A N6A ... 4.81
41.log: Asn 31A CA ... Hmg 401A C6A ... 4.67
41.log: Asn 31A CA ... Hmg 401A N1A ... 4.19
41.log: Asn 31A CA ... Hmg 401A C2A ... 4.50
41.log: Asn 31A CB ... Hmg 401A N6A ... 4.28
41.log: Asn 31A CB ... Hmg 401A C6A ... 4.15
41.log: Asn 31A CB ... Hmg 401A N1A ... 3.39
41.log: Asn 31A CB ... Hmg 401A C2A ... 3.85
41.log: Asn 31A CB ... Hmg 401A N3A ... 4.95

Thanks for any help,
Mike
Ed Morton

2004-05-12, 7:19 pm



Mike wrote:
> Hello,
>
> I need to fill in fields with values from a previous line, but *only*
> when they are empty.
>
> So, the following lines
>
> 41.log: Asn 31A CA ... Hmg 401A N6A ... 4.81
> 41.log: ... Hmg 401A C6A ... 4.67

<snip>
> should be converted to
>
> 41.log: Asn 31A CA ... Hmg 401A N6A ... 4.81
> 41.log: Asn 31A CA ... Hmg 401A C6A ... 4.67

<snip>

Untested:

awk '$2 == "..." { print $1, p2, p3, p4, $2, $3, $4, $5, $6, $7; next }
{ p2=$2; p3=$3; p4=$4; print }'

Regards,

Ed.

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com