The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Advanced & Expert Users
.
google unix.com



UNIX for Advanced & Expert Users Expert-to-Expert. Learn advanced UNIX, UNIX commands, Linux, Operating Systems, System Administration, Programming, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Pulling a file off a backup tape rocker40 UNIX for Dummies Questions & Answers 14 10-12-2007 12:37 PM
Pulling data and following lines from file MizzGail Shell Programming and Scripting 2 01-31-2006 03:13 PM
How to add fields in a file bjorb Shell Programming and Scripting 2 10-13-2005 09:11 AM
pulling a column from a file in ksh dangral Shell Programming and Scripting 8 01-13-2003 04:10 PM
pulling the following line from a file peter.herlihy UNIX for Dummies Questions & Answers 4 08-29-2002 10:09 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 09-28-2001
Saz Saz is offline
Registered User
  
 

Join Date: Sep 2001
Posts: 1
Angry Pulling out fields from a file

Hi,
I have a file that contains 1400 lines similar to the one shown below:

NAME=sara, TOWN=southampton, POSTCODE=SO18777, EMAIL=sara@hotmail.com, PASSWORD=asjdflkjds etc etc (note: this is one line).

Each line has the same fields, but on each line they are in a different order. Eg. the line beneath the one shown above is:

TOWN=southampton, PASSWORD=asjdflkjds, NAME=sara, EMAIL=sara@hotmail.com, POSTCODE=SO18777

I want to be able to pull out only the POSTCODE and NAME fields (including everything up to the comma) from this file and place it into another.

However, using sed/awk I have not been able to do this.

Any ideas?

Last edited by Saz; 09-28-2001 at 01:20 PM..
  #2 (permalink)  
Old 09-28-2001
PxT's Avatar
PxT PxT is offline Forum Advisor  
Registered User
  
 

Join Date: Oct 2000
Location: Sacramento, CA
Posts: 909
One method:

perl -ne 'if /(POSTCODE=.*?)(,|$)/ {print $1." ";} if/(NAME=.*?)(,|$)/ {print $1."\n";}' <I>filename</I>


Don't forget Perl's motto: TIMTOWTDI (There is more than one way to do it)
  #3 (permalink)  
Old 09-30-2001
eddie eddie is offline
Registered User
  
 

Join Date: Aug 2001
Location: Ontario, Canada
Posts: 20
Another method, 3 commands, a little bit longer, but easier to understand. Here I assume there are 5 fields in the source file,

(awk -F "," '{print FNR, $1}' filename ; awk -F "," '{print FNR, $2}' filename ; awk -F "," '{print FNR, $3}' filename ; awk -F "," '{print FNR, $4}' filename ; awk -F "," '{print FNR, $5}' filename) | grep "NAME=" | sort > tab1

(awk -F "," '{print FNR, $1}' filename ; awk -F "," '{print FNR, $2}' filename ; awk -F "," '{print FNR, $3}' filename ; awk -F "," '{print FNR, $4}' filename ; awk -F "," '{print FNR, $5}' filename) | grep "POSTCODE=" | sort > tab2

join tab1 tab2

"awk" outputs the fields with line number (record number), then we "join" them together by line numebr. Just like we make a query / joint between 2 tables, "select tab1.NAME, tab2.POSTCODE from tab1, tab2 where tab1.linenumber=tab2.linenumber"

Last edited by eddie; 09-30-2001 at 05:22 PM..
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 10:24 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0