View Single Post
Old Nov 18th, 2006, 12:58 AM   #1
Eric the Red
Hobbyist Programmer
 
Eric the Red's Avatar
 
Join Date: Feb 2006
Posts: 214
Rep Power: 0 Eric the Red is an unknown quantity at this point
Small Database Work

Well, as you probably know I started Unix scripting today. Most of the problem I've ran into today were solved with the 'man command' statement (for the manual). However, now I ran into a problem and I have no idea what command to use. If you guys could point me on what command to use that would be great then I'll look up the rest. I found this useful database to practice with and here's how it goes (in short):

// file1.fd
Quebec:5:QC
Ontario:6:ON
Manitoba:7:MB
Saskatchewan:8:SK

//file2.fd
Quebec City:7560592:1542056:July 1, 1867:5
Toronto:12439755:1076395:July 1, 1867:6
Winnipeg:1170300:647797:July 15, 1870:7
Regina:996194:651036:September 1, 1905:8

I'll show you an example with the first entry so you can see what I'm doing.

First off, both files are sorted based on their ID's (5-8 is what I've shown above). So that would mean 'Toronto' (in file2) would be on the same line number as Ontario (in file1). If you believe me that it's sorted according to the ID, please skim down the page to the '->' to save your time

to acomplish this I used (NOTE: the '-k2' is what section is being sorted 'in this case the ID's):

sort -n -t: -k2 file1.ca > SortedFile1.tmp
sort -n -t: -k5 file2.ca > SortedFile2.tmp

Please don't worry about the ID's because it really doesn't mean anything. All it does is help me match the provinces with the capitals (for later use).

->
Now, that it's sorted, what I'm actually trying to do is take for instance, the first column of file2 'Toronto for instance' then add the corresonding Province Abbreviation (from file1). With ', ' (a comma followed by a space) as opposed to keeping the deliminer ':' (or seperator whatever you want to call it).

So I get:

'Toronto, ON' and so fourth.

Before you go on about looking at the man pages, I found the cut and paste commands. Yes that would normally work by doing:

cut -d: -f1 file1.fd > temp1.fd
cut -d: -f3 file2.fd > temp2.fd
paste -d: temp1.fd temp2.fd > FINAL.fd

this would create:

Quebec City: QC
Toronto: ON
Winnipeg: MB
Regina: SK

But as I said earlier I want to be able to add a string in between the deliminer.

So I can do

Quote:
Quebec City, Qc
..
..
Regina, SK

Any ideas on what command I should be using to do this?

Can the cut and paste command suffice?
__________________
Death smiles at us all. All a man can do is smile back.
Eric the Red is offline   Reply With Quote