using join command

I am given:
Sara:Smith:11234:3:63498:25:40
Perry:Potter:12445:2:35664:15:40
Ann:Abbott:23323:2:54865:22:42
Maple:Myers:24223:1:63498:18:35
Harold:Hanson:35664:2:54865:10:40
Bob:Brown:40778:1:24223:15:40
Jane:Jones:41288:1:53498:24:40
Wanda:Wallace:51122:4:63498:55:40
Mark:Miller:53498:1:24223:25:43
Tom:Tuckett:54865:2:63498:43:40
Zeb:Zucker:63498:1:10000:85:40
in one file

and :
1:North:2
2:South:1
3:East:4
4:West:3
in another

I am struggling to join the two so that rather having a line like Zeb:Zucker:63498:1:10000:85:40
i end up with a line in the file like
Zeb:Zucker:63498:North:85:40
but not for just one line, the whole file

or anything along those lines...
please help :frowning:

Assuming your names are in the file "list" and your four lines of codng are in the file "code"

awk '
BEGIN            {
                          FS=OFS=":"
                          for (N = 1 ; N < 5 ; N++ ) getline C[N] < "code"
                        }
FILENAME  != "code"      {
                          split (C[$4], A, ":")
                          $4 = A[2]
                          print
                        }
' code list

~

thanks for the quick reply!
but doesn't that simply print it out?
say i want to cat that into a new file and then
with the new file of the two joined, i want to display

Emp # First Name Last Name District Weekly Gross Pay

11234 Sara Smith East 1000.00
12445 Perry Potter South 600.00
23323 Ann Abbott South 924.00
24223 Maple Myers North 630.00
...

is there any way to join the two into a new file?

It took me some time to figure out what was the 4th column of your required output:
11234 Sara Smith East 1000.00

If you want an answer, please be more explicit.

Try this

awk -F: -v OFS=" " 'FNR==NR{a[$1]=$2;next}{print $3,$1,$2,a[$4],sprintf("%.2f",$6*$7)}' file2 file1

If you want output to go to a file instead of to your screen, then redirect it to a file.