# ACC.csv
#CODE,ACC_EC,ACC_NC,Long,Lat,POL,Severity,No_Vehicles,No_Casualties,Date,DayofWeek,Time,LA_District,LA_Highway,1st_Road_Class,1st_Road_Number,Road_Type,LIMIT,Junction_Detail,Junction_Control,2nd_Road_Class,2nd_Road_Number,Zebra-Human,Zebra_Machine,Visibility,Weather_Conditions,Surface,Special_Conditions,Road_Hazards,Urban_Rural,Police_Attended,LSOAofLocation,ACCREF,Month,Minute,ACCDAY,Hour,YEAR,WHEN,ACC_EC5,ACC_NC5
# a = ACC_EC ($2)
# b = ACC_NC ($3)
#
# SITES.csv
# OLD SORT,POL,REF,CAM ETG,CAM NTG,INSTALL,MONTH,WHEN,TYPE,CAM_ETGkm,CAM_NTGkm
# SORT,POL,REF,SITE_ ETG,SITE_NTG,INSTALL,MONTH,WHEN,TYPE,BEFORE,AFTER
# r = REF ($3)
# c = SITE_ ETG ($4)
# d = SITE_NTG ($5)
# One time logic before records are read from input file
BEGIN {
# Change field separator from space to comma for our file
FS = ","
file2 ="SITES.CSV"
}
# Main processing loop handling each line of the file
{
# Check if first line (header)
if (NR == 1) {
# If this is header just write it to output adding new column headers
print $0 ",REF,CAM ETG,CAM NTG,Distance"
} else {
# skip blank lines
if ($0 != "") {
# Save input record from file1
source = $0
# Save needed fields for calcs below, remove double quotes if found DOUBLE QUOTES PREVIOUSLY STRIPPED FROM FILE
a = $2 # ACC_EC
b = $3 # ACC_NC
gsub("\"", "", a)
gsub("\"", "", b)
Bestx = 999999999
# Add new columns at the end
while ((getline < file2 ) > 0 ) {
if ($1 != "SORT") {
r = $3
c = $4 # SITE_ETG
d = $5 # SITE_NTG
x = sqrt(((a-c)^2)+((b-d)^2))
if (x < Bestx) {
Bestx = x
Bestr = r
Bestc = c
Bestd = d
}
}
}
printf("%s,%s,%s,%s,%f\n", source, Bestr, Bestc, Bestd, Bestx)
close(file2)
}
}
}
MacPro:5-CombineBOTH ADM$ awk -f unlimited.awk ACC.CSV sites.csv > out.txt
ASKER
The term 'shell' refers to a general class of text-based command interpreters most often associated with the UNIX and Linux operating systems. Popular shells include Bourne, Debian Almquist (dash), Korn (ksh), Bourne Again (bash) and the C shell family (csh). Some view the DOS 'cmd' prompt as a minimal shell of sorts. It is also possible to install Cygwin on Windows and emulate a full Unix environment with complete shell capabilities. Terminal emulators, such as xterm, GNOME Terminal and OS X Terminal, can be used to access shell.
TRUSTED BY
ASKER