Question
Please help with these three questions and make comments if possible so I can understand. 3. Awk . Your code for this and the next
Please help with these three questions and make comments if possible so I can understand.
3. Awk. Your code for this and the next two question will be graded by a script so be sure that your scripts have the right names and produce the correct output (when run on mlc104).
The csumb.osm file contains data about roads around CSUMB. The file is in XML format, and contains information about "ways" (like stretches of road) and "nodes" points along a road. Write an awk script named make-nodes-table.awk that will extract node information from a .osm file. Your script should do this on the csumb.osm file: $ awk -f make-nodes-table.awk csumb.osm | wc 289 289 9734 $ awk -f make-nodes-table.awk csumb.osm | head -15 node_id,lat,long 1647008557,36.6536840,-121.7938995 421381587,36.6440097,-121.8066305 1646442592,36.6444397,-121.8064060 89819313,36.6461624,-121.8055179 1646442620,36.6446496,-121.8062964 89819334,36.6480528,-121.8067458 2935611310,36.6478826,-121.8060726 2935611314,36.6479609,-121.8058399 2935611315,36.6480277,-121.8063213 89801177,36.6409070,-121.8020990 89821442,36.6439543,-121.8028688 89821444,36.6437400,-121.8028720 89821446,36.6432520,-121.8030660 89821448,36.6428490,-121.8030920 $ awk -f make-nodes-table.awk csumb.osm | tail -15 2342889689,36.6551549,-121.7670867 3727683587,36.6551113,-121.7716948 3727683588,36.6551441,-121.7709472 3727683589,36.6551905,-121.7663836 89880441,36.6595260,-121.7787770 2342889693,36.6552093,-121.7649071 89954271,36.6554350,-121.7584980 89933309,36.6650290,-121.8008020 89933312,36.6649700,-121.8003770 89933314,36.6649210,-121.8001720 89933318,36.6648190,-121.7999010 89933321,36.6646840,-121.7996710 89933323,36.6645870,-121.7995480 89933326,36.6644810,-121.7994380 89933331,36.6642690,-121.7992770 I have provided the complete correct output file csumb-nodes.csv for you to test your code against.
4. Write an awk script named make-road-table.awk that will extract road data from an .osm file. Your script should work as follows on the csumb.osm file: $ awk -f make-road-table.awk csumb.osm | wc 279 662 10251 $ awk -f make-road-table.awk csumb.osm | head -15 road,way_id,seq_num,node_id Engineer Road,10459706,1,89705976 Engineer Road,10459706,2,89798118 Engineer Road,10459706,3,89798120 Engineer Road,10459706,4,89798122 Engineer Road,10459706,5,89798124 Engineer Road,10459706,6,89798126 Engineer Road,10459706,7,89798128 Engineer Road,10459706,8,89798130 5th Cutoff Street,10461171,1,89804458 5th Cutoff Street,10461171,2,89804460 5th Cutoff Street,10461171,3,89804463 5th Cutoff Street,10461171,4,89804464 5th Cutoff Street,10461171,5,89804466 5th Cutoff Street,10461171,6,89804468 $ awk -f make-road-table.awk csumb.osm | tail -15 Inter-Garrison Road,205167594,7,2342889683 Inter-Garrison Road,205167594,8,89994529 Inter-Garrison Road,205167594,9,89994530 Inter-Garrison Road,205167594,10,3727683588 Inter-Garrison Road,205167594,11,3727683587 Inter-Garrison Road,205167594,12,3727683584 Inter-Garrison Road,205167594,13,89994533 Inter-Garrison Road,205167594,14,89899515 Inter-Garrison Road,205167594,15,89917014 Inter-Garrison Road,205167594,16,373831767 Inter-Garrison Road,205167594,17,89808878 Light Fighter Drive,441628696,1,2935611310 Light Fighter Drive,441628696,2,2935611307 Light Fighter Drive,441628696,3,2935611305 Light Fighter Drive,441628696,4,89819293 I have provided the complete correct output file csumb-roads.csv for you to test your code against. Hint: the awk string function 'split' can be handy in picking parts out of a line of the .osm file.
5. The file queries.sql contains some SQL questions (on lines beginning with "--") and answers to those problems. Write an awk script get_query.awk that will get the answer for a specified problem. Your script should do this: $ awk -f get_query.awk -v PROB=2 queries.sql select occupation, round(avg(amount)) from contributor natural join contribution where occupation in ("STUDENT", "TEACHER", "LAWYER") group by occupation; $ awk -f get_query.awk -v PROB=11 queries.sql select substr(name, 1, instr(name, ",")-1) as last, zip, count(*) as cnt from contributor group by last, zip having cnt > 6 order by cnt desc; $ awk -f get_query.awk -v PROB=12 queries.sql select contbr_name, sum(amount), count(*) as cnt from c_summary group by contbr_name having cnt > 75 order by cnt desc;
csumb.osm, csumb-nodes.csv, queries.sql file found here: (scroll all the way through to see other files)
https://docs.google.com/document/d/1ID_GILE61o1EfkY_vqFop2ByqL1r0PYnt4kW_LLz1gQ/edit
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started