Sponsored Content
Homework and Emergencies Homework & Coursework Questions Awk Script that implements a report writer Post 302476304 by birei on Wednesday 1st of December 2010 11:34:16 AM
Old 12-01-2010
Hi,

Output was incorrect. Here a new version:
Code:
$ awk --version | sed '1q'
GNU Awk 3.1.8
$ cat report
BEGIN {
    ## Field separator.
    FS=":";

    ## Header.
    printf("%s\n", "Lazy Acres, Inc.");
    printf("%s\n", "2009 Sales Associates Ranking");
    printf("%-30s %-20s %20s\n", "Name", "Position", "Sales amount");
    for (i = 0; i < 72; i++) {
    printf("%c", "=");
    }
    print;
}

## Associates lines.
## $1 -> Associate ID.
## $2 -> First name.
## $3 -> Position.
NF == 3 {    
    assoc[$1] = $2 ":" $3;
}

## Product lines.
## $1 -> Product ID.
## $4 -> Price.
NF == 4 {
    product[$1] = $4;
}

## Sales lines.
## $2 -> Product ID.
## $3 -> Quantity.
## $4 -> Date.
NF == 5 && $4 ~ /2009/ {
    if ($2 in product) { sales[assoc[$NF]] += $3 * product[$2]; }
}

END {
    ## Reverse sorted sales (numeric numbers from smallest to biggest).
    asort(sales, salesSortedD);

    for (i = length(sales); i > 0; i--) {
    for (s in sales) {
        if (sales[s] == salesSortedD[i]) {
        match(s, /(.*):(.*)/, a);
        printf("%-30s %-20s %20.2f\n", a[1], a[2], salesSortedD[i]);
        break;
        }
    }
    
    }
}
$ awk -f report inputfile
$ ## Output supressed.

Regards,
Birei
This User Gave Thanks to birei For This Post:
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Share CD-Writer

Hi, guys ! I have a server that runs FreeBSD 5.3 and on that server a have a CD-Writer used for backup. The question is, does anybody know how can I share this CD-Writer ? I want to be able to write CDs from another computer, without transfering all the data to the server and after that use all... (2 Replies)
Discussion started by: Sergiu-IT
2 Replies

2. UNIX for Advanced & Expert Users

Probleme With DVD Writer

I Use mkcd for save same directories into DVD, But the commande not complete succefuly mkcd -r directorie_i_whish_save -d /dev/cd1 please it is very urgent thank you :confused: :confused: (1 Reply)
Discussion started by: mktahar
1 Replies

3. AIX

Probleme with DVD Writer

I can write into DVD? I have USE "MKCD" command mkcd -r directorie -d /dev/cd1 please help me it s urgent (2 Replies)
Discussion started by: mktahar
2 Replies

4. Shell Programming and Scripting

Awk Script for generating a report

Hi all, I have a log file of the below format. 20081016:000042 asdflasjdf asljfljs asdflasjf safjl 20081016:000229 /lask/ajlsdf/askdfjsa 20081016:000229 /lashflas /askdfaslj hsfhsahf 20081016:000304 lasflasj ashfashd 20081016:000304 lajfasdf ashfashdfhs I need to generate a... (3 Replies)
Discussion started by: manoj.naidu
3 Replies

5. Homework & Coursework Questions

How Unix implements virtual memory?

Use and complete the template provided. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: The key to using memory most efficiently is virtual memory management. Consider both Windows and UNIX operating systems. Compare and contrast how each... (0 Replies)
Discussion started by: kjcruz
0 Replies

6. HP-UX

How Unix implements virtual memory?

Hello! just wanna ask if how UNIX implements virtual memory, and how it handles page faults, working sets, page sizes and how it reconciles thrashing issues? if you know some sources where I can have some idea, just post it here. thx (1 Reply)
Discussion started by: kjcruz
1 Replies

7. Homework & Coursework Questions

awk script that implements a report writer

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: The script should compute the sale amounts per associate for the year 2009 and print them in a sorted list ranked... (1 Reply)
Discussion started by: Jeffthrow5
1 Replies

8. UNIX for Advanced & Expert Users

How to implements Queueing Using Shell scripts

I want to implement a control mechanism using Shell scripts .The intention is to have controlled number of jobs running in parallel External process will kickstart 40 jobs in parallel .All the 40 jobs will call the same generic script with different parameter values .But at a time only 2 should... (1 Reply)
Discussion started by: police
1 Replies
CUBRID_NEXT_RESULT(3)							 1						     CUBRID_NEXT_RESULT(3)

cubrid_next_result - Get result of next query when executing multiple SQL statements

SYNOPSIS
bool cubrid_next_result (resource $result) DESCRIPTION
The cubrid_next_result(3) function is used to get results of next query if multiple SQL statements are executed and CUBRID_EXEC_QUERY_ALL flag is set upon cubrid_execute(3). PARAMETERS
o $result -$result comes from a call to cubrid_execute(3) RETURN VALUES
TRUE, when process is successful. FALSE, when process is unsuccessful. EXAMPLES
Example #1 cubrid_next_result(3) example <?php $conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba"); $sql_stmt = "SELECT * FROM code; SELECT * FROM history WHERE host_year=2004 AND event_code=20281"; $res = cubrid_execute($conn, $sql_stmt, CUBRID_EXEC_QUERY_ALL); get_result_info($res); cubrid_next_result($res); get_result_info($res); function get_result_info($req) { printf(" ------------ get_result_info -------------------- "); $row_num = cubrid_num_rows($req); $col_num = cubrid_num_cols($req); $column_name_list = cubrid_column_names($req); $column_type_list = cubrid_column_types($req); $column_last_name = cubrid_field_name($req, $col_num - 1); $column_last_table = cubrid_field_table($req, $col_num - 1); $column_last_type = cubrid_field_type($req, $col_num - 1); $column_last_len = cubrid_field_len($req, $col_num - 1); $column_1_flags = cubrid_field_flags($req, 1); printf("%-30s %d ", "Row count:", $row_num); printf("%-30s %d ", "Column count:", $col_num); printf(" "); printf("%-30s %-30s %-15s ", "Column Names", "Column Types", "Column Len"); printf("------------------------------------------------------------------------------ "); $size = count($column_name_list); for($i = 0; $i < $size; $i++) { $column_len = cubrid_field_len($req, $i); printf("%-30s %-30s %-15s ", $column_name_list[$i], $column_type_list[$i], $column_len); } printf(" "); printf("%-30s %s ", "Last Column Name:", $column_last_name); printf("%-30s %s ", "Last Column Table:", $column_last_table); printf("%-30s %s ", "Last Column Type:", $column_last_type); printf("%-30s %d ", "Last Column Len:", $column_last_len); printf("%-30s %s ", "Second Column Flags:", $column_1_flags); printf(" "); } ?> The above example will output: ------------ get_result_info -------------------- Row count: 6 Column count: 2 Column Names Column Types Column Len ------------------------------------------------------------------------------ s_name char 1 f_name varchar 6 Last Column Name: f_name Last Column Table: code Last Column Type: varchar Last Column Len: 6 Second Column Flags: ------------ get_result_info -------------------- Row count: 4 Column count: 5 Column Names Column Types Column Len ------------------------------------------------------------------------------ event_code integer 11 athlete varchar 40 host_year integer 11 score varchar 10 unit varchar 5 Last Column Name: unit Last Column Table: history Last Column Type: varchar Last Column Len: 5 Second Column Flags: not_null primary_key unique_key SEE ALSO
cubrid_execute(3). PHP Documentation Group CUBRID_NEXT_RESULT(3)
All times are GMT -4. The time now is 07:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy