Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Nov 2007 21:46:46 +0100
From:      Tino Engel <elrap@web.de>
To:        ann kok <annkok2001@yahoo.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Can you help about script
Message-ID:  <473B5EB6.3020609@web.de>
In-Reply-To: <295004.76329.qm@web53304.mail.re2.yahoo.com>
References:  <295004.76329.qm@web53304.mail.re2.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
ann kok schrieb:
> Hi all
>
> I don't have idea how to write this script, please
> help
>
> I have thousand records in this format indexed by
> FileNo.
>
> FileNo:    001
> Name:      NameA
> Address1:  AddressA1
> Address2:  AddressA2
> Phone:     PhoneA
> Created by 
>
>
> I need to write a script to replace those Fields 
> eg: (NameA AddressA1.... if it matchs the
> FileNo.001...002...)
> to get Data in this file
>
>
> FileNo:001    Name A     AddressA1    AddressA2  
> PhoneA                        
> FileNo:002    Name B     AddressB1    AddressB2  
> PhoneB                    
> FileNo:003    Name C     AddressC1    AddressC2  
> PhoneC 
>
> Thank you for your help
>
>
>   
It is definetely an issue for the 'awk' utility.
Here is a working solution, although it could be done somehow shorter 
using patterns (I do not recall how they worked.
But I have tested this one, it does the job.

#awk -f prog.awk <yourfile>

prog.awk should contain:
{
if( $1 == "FileNo:")     { printf( "%s%s ", $1 , $2) }
if( $1 == "Name:")       { printf( "%s ", $2) }
if( $1 == "Address1:") { printf( "%s ", $2) }
if( $1 == "Address2:") { printf( "%s", $2) }
if( $1 == "Phone:")       { printf( "\n%s\n", $2) }
}




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?473B5EB6.3020609>