1. The problem statement, all variables and given/known data:
Using "filename" as the input, write an awk script that will find the sum and average of each user's grade and display them after their names in order. Also display the average of all the users at the end of your output.
"the file"
Bred Lerry 89 34 92 78 100 80
Farla Moran 71 73 38 98
Ed Morton 89 74 85 78
Ted Nifle 83 78 56 90
Ed Norton 67 78 92 34
Ivana Notrump 92 81 85 94
Ned Osgood 75 83 67 92 50
George Berry 86 84 76 78
Bob Marly 78 85 71 77 80
Ed Fible 67 89 90 95
"end of file"
2. Relevant commands, code, scripts, algorithms:
I can use awk, if statements for loops and while loops but they all have to be used with awk.
3. The attempts at a solution (include all code and scripts):
attempt 1
and I really don't understand the items++. I believe that the data +=i is putting the result of $i in that right? but I don't understand where the items come into play.
second attempt
If I could get a little help here that would really make my day. I've been racking my brain about this for two days and all the information that I have found on the Internet has just really confused me further. All I got in class was some sample awk scripts to look over and they did not explain to much. So if anyone can help me understand this that would be great thank you.
4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course): Washtenaw community college, Ann Arbro, Michigan, Prof. Geyer, CIS221
Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).
Last edited by linuxtraining; 04-14-2011 at 10:32 PM..
Reason: forgot the state
In awk, you might do something like: BEGIN { print "report heading" }. This BEGIN block is executed once at the beginning of the run. You might print a heading as I show or initialize variables. But you would not use $1. The file has not been read. There is no $1 at this point.
There is also an END block that you can use. It is executed once after all of the data has been processed. This is where you might print out totals or stuff like that.
In between the BEGIN and END blocks are other blocks. You could have a condition like NF>6 { stuff to do } if you really want the block executed only for records with more that 6 fields. This would exclude most of your data lines, but it would include a couple of them. If you want to process all of your data lines, leave the condition off like this: { stuff to do }
Variables pop into existence already initialized to zero. Code like i++; adds 1 to i each time it is executed. Code like total += data;adds the variable data to the variable total each time it is run. Remember, after you put data in total, it stays there. If you need a total for each record you process you probably need to initial total to zero yourself for each record. total=0;
As you process each record of your file, $1 and $2 are the first and last names. To loop through the grades you need something like for (i=3; i<= NF; i++) { stuff to do } You may find that you need a total for the line and a separate total for the file.
Good evening, Im newbie at unix specially with awk
From an scheduler program called Autosys i want to extract some data reading an inputfile that comprises jobs names, then formating the output to columns for example
1.
This is the inputfile:
$ more MapaRep.txt
ds_extra_nikira_usuarios... (18 Replies)
Hi,
I am trying to pass awk field to a command line executed within awk (need to convert a timestamp into formatted date).
All my attempts failed this far.
Here's an example.
It works fine with timestamp hard-codded into the command
echo "1381653229 something" |awk 'BEGIN{cmd="date -d... (4 Replies)
Hello experts,
I'm stuck with this script for three days now. Here's what i need.
I need to split a large delimited (,) file into 2 files based on the value present in the last field.
Samp: Something.csv
bca,adc,asdf,123,12C
bca,adc,asdf,123,13C
def,adc,asdf,123,12A
I need this split... (6 Replies)
Hi,
I have a situation to compare one file, say file1.txt with a set of files in directory.The directory contains more than 100 files.
To be more precise, the requirement is to compare the first field of file1.txt with the first field in all the files in the directory.The files in the... (10 Replies)
I have two files which I would like to compare and then manipulate in a way.
File1:
pictures.txt 1.1 1.3
dance.txt 1.2 1.4
treehouse.txt 1.3 1.5
File2:
pictures.txt 1.5 ref2313 1.4 ref2345 1.3 ref5432 1.2 ref4244
dance.txt 1.6 ref2342 1.5 ref2352 1.4 ref0695 1.3 ref5738 1.2... (1 Reply)
Hi
I have many problems with a script. I have a script that formats a text file but always prints the same error when i try to execute it
The code is that:
{
if (NF==17){
print $0
}else{
fields=NF;
all=$0;
while... (2 Replies)
Hi Experts,
I am adding a column of numbers with awk , however not getting correct output:
# awk '{sum+=$1} END {print sum}' datafile
2.15291e+06
How can I getthe output like : 2152910
Thank you..
# awk '{sum+=$1} END {print sum}' datafile
2.15079e+06 (3 Replies)
Actually I got a list of file end with *.txt
I want to use the same command apply to all the *.txt
Thus I try to find out the fastest way to write those same command in a script and then want to let them run automatics.
For example:
I got the file below:
file1.txt
file2.txt
file3.txt... (4 Replies)