awk with Grep and Sort

  1. The problem statement, all variables and given/known data:
    Please bare in mind I am a complete novice to this and have very very basic knowledge so please keep any answers as simple as possible and explain in terms I will understand ahha :):slight_smile:

I have a text file of names and test scores called class.txt e.g.

Code:

Bob Smith 15
James Jones 25
Emily Hunt 70

Then another text file with more detail called classdetails.txt e.g. (note the subject, date, first and surname, class, scores are separated by tabs, also the names are one field not two)

Code:

Maths     10/05/12     Bob Smith      Class 5      65:54:32:96
English   15/04/12     James Jones   Class 7     84:64:83:38
Science   12/07/13     Emily Hunt     Class 9      73:28:95:07
History    04/08/11    Bob Smith      Class 5      74:29:73:09

Then finally a text file called test.txt that simply contains

qwertyuiop

6)Print all of the contents of the file (class.txt) and give a title to each column and separate out each column with a tab, send the output to another file.

7)Print out all of the students who have scored over 30 and redirect the output to sort to display alphabetically.

8)Print out all of the students and redirect the output to sort to display in order of their score.

12)Using the classdetails.txt file print col 5 and then sort the output in numerical order. Note this file is tab separated � hint use sort to sort the output from awk.

13)Create 4 files with the suffix .txt in your home directory. Create a sub-directory. Using awk and the UNIX shell move all of the .txt files to the sub-directory.

14) Create 4 files with the suffix .txt in your home directory. Create a sub-directory. Using awk and the UNIX shell move all of the .txt files to the sub-directory.

For the following tasks create an awk script file to do the task

15) Using the classdetails file calculate and print out the max and min values for the final column the race times.

16) Using the classdetails file print out the number of lines that contain �Vettel�.

17) Count the number of times each student appears in the file, display the number and the total number of records in the file.

  1. Relevant commands, code, scripts, algorithms:

I have a very basic knowledge of things like awk, grep, sort and pipes but other than that I'm clueless.

  1. The attempts at a solution (include all code and scripts):

To print all of the contents of the file I have tried
Code:
awk �{print}� class.txt > class2.txt

and then perhaps edit the file with nano although I'm sure there is a better way.

Question 7 I imagine is largely similar to 6 except instead of the " > class2.txt" perhaps something involving pipes ?? I have also tried

awk -F":" '{ print $0 }' textile.txt

Question 8 the same as above except using pipes to sort i.e.

| sort -l

Question 12 will be similar to 6 I think

Question 13,14,15,16,17 I honestly have no idea where to start, I have today learnt how to write very basic scripts in nano and then use chmod u+x "script name" and then how to execute the script but as previously stated my hours of experience still probably are single figures :frowning:

  1. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):

Northern Illinois University, DeKalb (IL), United States, Raymond Ege, CSCI330

We don't need two threads discussing one homework problem. Continue this discussion here: awk questions using sort and grep