Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Awk > Re: Help parsin...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 5 of 6 Topic 2158 of 2317
Post > Topic >>

Re: Help parsing a file

by juanpo@[EMAIL PROTECTED] Feb 13, 2008 at 12:28 PM

On Feb 11, 4:41=A0pm, Ed Morton <mor...@[EMAIL PROTECTED]
> wrote:
> On 2/11/2008 2:14 PM, jua...@[EMAIL PROTECTED]
 wrote:
>
>
>
>
>
> > On Feb 11, 2:08 pm, Ed Morton <mor...@[EMAIL PROTECTED]
> wrote:
>
> >>On 2/11/2008 12:59 PM, jua...@[EMAIL PROTECTED]
 wrote:
>
> >>>Hi, I'm trying to parse a file that looks like this to create 2
> >>>different files based on the first 3 characters
>
> >>>FL1ABC
> >>>LG1XYZ
> >>>LG2DBA
> >>>LG3PYZ
> >>>FL1CBA
> >>>LG1QWE
> >>>LG2ZXC
>
> >>>The first file will have all records starting with FL1 like this:
> >>>FL1ABC
> >>>FL1CBA
>
> >>>The second file will need to have the FL1 records appended to each of
> >>>the LG records below it like this:
>
> >>>FL1ABCLG1XYZ
> >>>FL1ABCLG2DBA
> >>>FL1ABCLG3PYZ
> >>>FL1CBALG1QWE
> >>>FL1CBALG2ZXC
>
> >>>Is there a way to easily build this logic using awk?
>
> >>>Thanks in advance for any helps you could provide.
>
> >>>Juan.
>
> >>This will create a file called "list" of all the FL1* records and
print =
the rest
> >>to stdout:
>
> >>awk '/^FL1/{key=3D$0;print > "list";next}{print key $0}' file
>
> >> =A0 =A0 =A0 =A0Ed.- Hide quoted text -
>
> >>- Show quoted text -
>
> > Thanks Ed,
>
> > That code works very well. =A0I discovered a problem in the original
> > file I was working from though. Some records in the file don't start
> > with LG so I need to include a condition to only write LG records to
> > stdout. =A0The file really looks like this:
>
> > FL1ABC
> > LEX123
> > LG1XYZ
> > LG2DBA
> > LG3PYZ
> > FL1CBA
> > LEX999
> > LG1QWE
> > LG2ZXC
>
> > Using the example above I would only want to write FL1 records along
> > with LG records, ignoring LEX records.
>
> > FL1ABCLG1XYZ
> > FL1ABCLG2DBA
> > FL1ABCLG3PYZ
> > FL1CBALG1QWE
> > FL1CBALG2ZXC
>
> > I tried a couple of things in the code but I just can't get a handle
> > on the proper syntax to accomplish it.
>
> > Thanks again.
>
> awk '/^FL1/{key=3D$0;print > "list";next} /^LG/{print key $0}' file
>
> =A0 =A0 =A0 =A0 Ed.- Hide quoted text -
>
> - Show quoted text -

Thanks Ed, this works great, is there a good awk basics book that you
could recommend?

I appreciate it.
 




 6 Posts in Topic:
Help parsing a file
juanpo@[EMAIL PROTECTED]   2008-02-11 10:59:37 
Re: Help parsing a file
Ed Morton <morton@[EMA  2008-02-11 13:08:26 
Re: Help parsing a file
juanpo@[EMAIL PROTECTED]   2008-02-11 12:14:54 
Re: Help parsing a file
Ed Morton <morton@[EMA  2008-02-11 15:41:55 
Re: Help parsing a file
juanpo@[EMAIL PROTECTED]   2008-02-13 12:28:51 
Re: Help parsing a file
Ed Morton <morton@[EMA  2008-02-13 15:40:03 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 14:55:59 CDT 2008.