Report Generation with Grep


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Report Generation with Grep
# 8  
Old 04-04-2010
Here's a Perl solution.

Code:
$ 
$ # show file sizes and names
$ ls -l file* | awk '{printf("%8d %s\n", $5, $8)}'
   10100 file1_dat
      60 file1_load
      62 file1_unload
   24930 file2_dat
      61 file2_load
      62 file2_unload
$ 
$ # display contents of the files - "file1_load" and "file1_unload"
$ cat file1_load
Started at 23:09:01
Loaded records 345298
Ended at 00:12:25
$ 
$ cat file1_unload
Started at 22:24:32
593456 records unloaded
Ended at 23:08:40
$ 
$ # display contents of the files - "file2_load" and "file2_unload"
$ cat file2_load
Started at 23:47:55
Loaded records 6748392
Ended at 01:23:49
$ 
$ cat file2_unload
Started at 21:56:38
475839 records unloaded
Ended at 23:00:59
$ 
$ 
$ # show the Perl script
$ cat -n report.pl
     1  #!/usr/bin/perl
     2  use Date::Calc qw(This_Year Delta_DHMS);
     3
     4  foreach $i (glob "*_dat") {
     5    ($f = $i) =~ s/_dat$//;
     6    @s = stat($i);
     7
     8    ## Unload
     9    $unload_file = $f."_unload";
    10    open(F,$unload_file) or die "Can't open $unload_file: $!";
    11    chomp(@unload = <F>);
    12    close(F) or die "Can't close $unload_file: $!";
    13    ($unloadcount = $unload[1]) =~ s/^(\d+) records unloaded$/$1/;
    14    ($usttime = $unload[0]) =~ s/^Started at (.*?)$/$1/;
    15    @x = split(/:/, $usttime);
    16    ($uedtime = $unload[2]) =~ s/^Ended at (.*?)$/$1/;
    17    @y = split(/:/, $uedtime);
    18    ($Dd,$Dh,$Dm,$Ds) = Delta_DHMS(This_Year(),1,1, @x, This_Year(),1,2, @y);
    19    $uelapsed = sprintf("%02d:%02d:%02d",$Dh,$Dm,$Ds);
    20
    21    ## Load
    22    $load_file = $f."_load";
    23    open(F,$load_file) or die "Can't open $load_file: $!";
    24    chomp(@load = <F>);
    25    close(F) or die "Can't close $load_file: $!";
    26    ($loadcount = $load[1]) =~ s/^Loaded records (\d+)$/$1/;
    27    ($lsttime = $load[0]) =~ s/^Started at (.*?)$/$1/;
    28    @x = split(/:/, $lsttime);
    29    ($ledtime = $load[2]) =~ s/^Ended at (.*?)$/$1/;
    30    @y = split(/:/, $ledtime);
    31    ($Dd,$Dh,$Dm,$Ds) = Delta_DHMS(This_Year(),1,1, @x, This_Year(),1,2, @y);
    32    $lelapsed = sprintf("%02d:%02d:%02d",$Dh,$Dm,$Ds);
    33
    34    ## print report line
    35    printf("%-8s %10s %10s %10s %10s %10s %10s %10s %10s %10s\n",
    36            $f, $s[7], $unloadcount, $usttime, $uedtime, $uelapsed, $loadcount, $lsttime, $ledtime, $lelapsed);
    37  }
    38
$ 
$ 
$ # run the Perl script
$ perl report.pl
file1         10100     593456   22:24:32   23:08:40   00:44:08     345298   23:09:01   00:12:25   01:03:24
file2         24930     475839   21:56:38   23:00:59   01:04:21    6748392   23:47:55   01:23:49   01:35:54
$ 
$

tyler_durden
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Report generation using script

Hi all I have a unix script that generates a report with the following information: uptime, mounted file systems, disk usage (> 90% --> critical, <75%-90%> --> warning, < 75% healthy), Mem usage, CPU usage and load average. But I would like to create one single report containing all this... (5 Replies)
Discussion started by: fretagi
5 Replies

2. Shell Programming and Scripting

Using awk and grep for sql generation

Hi, I have a file pk.txt which has table related data in following format TableName | PK Employee | id Contact|name,phone,country I have another file desc.txt which lists datatype of each field like this: Table|Field|Type Employee|id|int Contact|name|string Contact|country|string... (7 Replies)
Discussion started by: wahi80
7 Replies

3. Shell Programming and Scripting

Report generation using perl script

Hi, I have a perl script to read the log file and create a report from it. I have the script file and log file in a different directories. Now i have pipe the log file data to the perl script to create the report (HMTL file). I am using the below command this isn't working tail -f... (4 Replies)
Discussion started by: vel4ever
4 Replies

4. Shell Programming and Scripting

Report generation based on certain conditions

Hi I recently joined a project where I have been asked to generate a report using shell script accessing UNIX box. I have no idea on how to do it as I am a beginner and learning shell scripts. Suppose I have a XML: Code: ... (3 Replies)
Discussion started by: vat1kor
3 Replies

5. Shell Programming and Scripting

File Report Generation

hi all i need to generate a report file that contains the following details of files present in a directory. 1. File name 2.Complete path for each files and directory 3.File size 4.Days older example i have a directory testing that contains sub-directories and some files. i need to make a... (5 Replies)
Discussion started by: yashwantkumar
5 Replies

6. Shell Programming and Scripting

Disk report generation problem

Hello everyone, I have a list of inputs as below. My logic is to get the particular powerdisk which matches for ASM disk which means take the major & minor number of each asm disk and matches with powerdisk info then get the particular powerdisk $ ls -l /dev/asm_* ---> ASM disk info... (11 Replies)
Discussion started by: kannan84
11 Replies

7. Shell Programming and Scripting

Report generation

Hello, I got a requirement in writing a KSH script in unix, please help me out the requirement is there are two folders Folder1 and Folder2 and there are same files in the different folders. like file1,file2 in folder1 and file1 and file2 in folder2. I would like to compare all the similar... (3 Replies)
Discussion started by: gmahesh2k
3 Replies

8. UNIX for Dummies Questions & Answers

report generation

Hello, I got a requirement in writing a sheel script in unix, please help me out the requirement is there are two folders Folder1 and Folder2 and there are same files in the different folders. like file1,file2 in folder1 and file1 and file2 in folder2. I would like to compare all the... (2 Replies)
Discussion started by: gmahesh2k
2 Replies

9. Shell Programming and Scripting

awk- report generation from input file

I have input file with below content: Person: Name: Firstname1 lastname1 Address: 111, Straat City : Hilversum Person: Name : Fistname2 lastname2 Address: 222, street Cit: Bussum Person: Name : Firstname2 lastname3 Address: 333, station straat City: Amsterdam I need... (6 Replies)
Discussion started by: McLan
6 Replies

10. Shell Programming and Scripting

Oracle Report generation

Hi, I am beginner in shell programming.In a shell script i found a call to a script 'runrep25m',which i think is to generate oracle reports?Could anyone help me by providing some details about its usage With Thanks & Regards Dileep (7 Replies)
Discussion started by: DILEEP410
7 Replies
Login or Register to Ask a Question