Sponsored Content
Top Forums UNIX for Beginners Questions & Answers awk to format data into table Post 303046312 by aigles on Thursday 30th of April 2020 12:00:34 PM
Old 04-30-2020
A possible solution :
Code:
$ cat ./eshaqur.sh
awk '
    function printValues() {
        if (Values) {
            print  S, Date,   Value["NSMSSMRLTOT"],
                            Value["NSMSSRSUCC"],
                            Value["NSMSCMTOT"],
                            Value["NSMSCMRSUCC"];
        }
        delete Value;
    }
    $7=="(OK)" {
        printValues()
        Date = $2 " " $3 " " $4;
        S = $NF;
        next;
    }
    $1+0 {
        Value[$3] = $2;
        Values++;
        next ;
    }
    END {
        printValues()
    }
' SHMSGSERV_FRMT
$ ./eshaqur.sh
BC0 Apr 29, 08:10 75718 69284 71264 70947
BC0 Apr 29, 09:10 132640 117741 121283 120752
BC0 Apr 29, 10:10 136221 120417 124147 123444
BC0 Apr 29, 11:10 148035 131664 135324 134636

jpgir@LAPTOP-KJOA2D44 ~
$

This User Gave Thanks to aigles For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

data format from (4.56 0.7) -> 4.6(7) awk?!

Hi, I have to manipulate a data file which say reads like this {$index $value $error_on_value} aa 4.56 0.7 bb 123.456 0.00987 cc 987654 321 . . in easily human readable format of type aa 4.6(7) bb 123.456(1) cc 9.877(3)e+05 value rounded to 4.6 with error of 0.7 on the last... (4 Replies)
Discussion started by: ahan
4 Replies

2. Shell Programming and Scripting

How to transpose a table of data using awk

Hi. I have this data below:- v1 28 14 1.72414 1.72414 1.72414 1.72414 1.72414 v2 77 7 7.47126 6.89655 6.89655 6.89655 6.89655 v3 156 3 21.2644 21.2644 20.6897 21.2644 20.6897 v4 39 3 1.72414 1.72414 1.72414 1.72414 1.72414 v5 155 1 21.2644 23.5632 24.1379 23.5632 24.1379 v6 62 2 2.87356... (2 Replies)
Discussion started by: ahjiefreak
2 Replies

3. Shell Programming and Scripting

Using Awk for extracting data in specific format

please help me writing a awk script 001_r.pdb 0.0265185 001_r.pdb 0.0437049 001_r.pdb 0.0240642 001_r.pdb 0.0310264 001_r.pdb 0.0200482 001_r.pdb 0.0146746 001_r.pdb 0.0351344 001_r.pdb 0.0347856 001_r.pdb 0.036119 001_r.pdb 1.49 002_r.pdb 0.0281011 002_r.pdb 0.0319908 002_r.pdb... (5 Replies)
Discussion started by: phoenix_nebula
5 Replies

4. Shell Programming and Scripting

Arrange / format data using awk

Input 217:fngadi4osa:fngadi4osa:M 217:415744:N/A 227:fngadi4osa:fngadi4osa: M 227:51200:N/A 228:fngadi4osa:fngadi4osa: M 228:102400:N/A 65:sapgt04:sapgt04: M 65:104448:N/A 228:fngadi4osa:fngadi4oma: M 228:102400:N/A Output 217:fngadi4osa:fngadi4osa:M 217:415744:N/A... (3 Replies)
Discussion started by: greycells
3 Replies

5. Shell Programming and Scripting

Perl Script for reading table format data from file.

Hi, i need a perl script which reads the file, content is given below. and output in new file. TARGET DRIVE IO1 IO2 IO3 IO4 IO5 ------------ --------- --------- --------- --------- --------- 0a.1.8 266 236 ... (3 Replies)
Discussion started by: asak
3 Replies

6. Shell Programming and Scripting

Need help getting data into legible format...maybe awk?

Good morning, I am still learning the powers of awk and perl. I am in need of a bit of help. I have a script on one of my launch systems...if that is even the word for it. Basically you can only ssh to a system if you are connected to this system due to firewalls. So from that system, I... (2 Replies)
Discussion started by: brianjb
2 Replies

7. Shell Programming and Scripting

Help with perl script to output data in table format...

Hello, I need help with a perl script that will process a text file and match virtual server name to profile(s). the rest will be ignored. Virtual server name follows the word "virtual" in the begging of the line. There could be multiple profiles assigned to one virtual server. For example, ... (3 Replies)
Discussion started by: besogon
3 Replies

8. Shell Programming and Scripting

Represent the data in table format as in mail content

hi all, I want to Represent the data in table format in mail content sample data should be like this...but i m trying to send this table to mail using unix command...hw do i do????even i echoed the table contents ...doesnt work.... help me <table style="background-color:lightblue;">... (8 Replies)
Discussion started by: navsan
8 Replies

9. Shell Programming and Scripting

Format Data - awk ..

/clusters/cluster-1/exports/storage-views/M1_CRE03_SV: Name Value ------------------------ --------------------------------------------------------------------------------------------------- caw-enabled true controller-tag - initiators ... (7 Replies)
Discussion started by: greycells
7 Replies

10. UNIX for Beginners Questions & Answers

awk to convert dict file to table format

HI I have a file that looks like below abc {Seq('GATAGC', SingleLetterAlphabet()): 1, Seq('ATAGCG', SingleLetterAlphabet()): 1, Seq('TAGCGG', SingleLetterAlphabet()): 1} BBC {Seq('AGGATA', SingleLetterAlphabet()): 1, Seq('GGATAG', SingleLetterAlphabet()): 1, Seq('GATAGC',... (2 Replies)
Discussion started by: biofreek
2 Replies
Date::Manip::Examples(3)				User Contributed Perl Documentation				  Date::Manip::Examples(3)

NAME
Date::Manip::Examples - examples of how to use Date::Manip DESCRIPTION
This document includes a number of examples on how to do common Date::Manip operations. I will be happy to add new examples over time, and welcome suggestions and examples to include. In most cases, an example will include two different ways of getting the answer. The first way will be using the new (as of 6.00) OO modules. The second will be using the old-style functional interface. It should be noted that any time you want to work with alternate time zones, the OO interface is STRONGLY recommended since the functional interface does not preserve time zone information with the date, and may therefore give incorrect results in some cases. However, working in the time zone of the system should give correct results. It should be noted that, in the examples below, it appears that the OO method takes a lot more lines of code than the functional interface. There are a number of ways to shorten the OO method, but for the examples, I wanted to include all the steps explicitly. PARSING A DATE
Dates can be parsed in practically any form in common usage: OO method $date = new Date::Manip::Date; $err = $date->parse("today"); $err = $date->parse("1st Thursday in June 1992"); $err = $date->parse("05/10/93"); $err = $date->parse("12:30 Dec 12th 1880"); $err = $date->parse("8:00pm December tenth"); Functional $date = ParseDate("today"); $date = ParseDate("1st Thursday in June 1992"); $date = ParseDate("05/10/93"); $date = ParseDate("12:30 Dec 12th 1880"); $date = ParseDate("8:00pm December tenth"); The Date::Manip::Date manual has a list of all valid formats. PARSING AN AMOUNT OF TIME
Amounts of time (referred to as deltas) can also be parsed: OO method $delta = new Date::Manip::Delta; $err = $delta->parse("in 12 hours"); $err = $delta->parse("-0:1:30:0"); $err = $delta->parse("4 business days later"); Functional $delta = ParseDateDelta("in 12 hours"); $delta = ParseDateDelta("-0:1:30:0"); $delta = ParseDateDelta("4 business days later"); TO CALCULATE THE AMOUNT OF TIME BETWEEN TWO DATES
$datestr1 = "Jan 30 1999 13:00 EST"; $datestr2 = "2/Mar/1999 15:30:00 +0500"; OO method $date1 = new Date::Manip::Date; $date2 = $date1->new_date(); $err = $date1->parse($datestr1); $err = $date2->parse($datestr2); To get an exact amount of time between the two dates (expressed only in terms of weeks, days, hours, minutes, seconds), use: $delta = $date1->calc($date2); To get an approximate amount of time (expressed in terms of years, months, weeks, etc. in terms that a human would typically think of), use: $delta = $date1->calc($date2,"approx"); Functional $date1 = ParseDate($string1); $date2 = ParseDate($string2); To get an exact amount: $delta = DateCalc($date1,$date2); and the approximate amount: $delta = DateCalc($date1,$date2,1); The Date::Manip::Calc manual has information about these, and other types of calculations. TO ADD AN AMOUNT OF TIME TO A DATE
To find a second date a given amount of time before or after a first date, use the following: $datestr = "Jan 30 1999 13:00 EST"; $deltastr = "12 hours ago"; $deltastr = "in 3 business days"; OO method $date = new Date::Manip::Date; $delta = $date->new_delta(); $date->parse($datestr); $delta->parse($deltastr); $d = $date->calc($delta); Functional $date = DateCalc($datestr,$deltastr); If the delta is a business delta, it will do a business mode calculation. The Date::Manip::Calc manual has information about these, and other types of calculations. COMPARE TWO DATES
To take two different dates and see which is earlier, do the following: $datestr1 = "Jan 30 1999 13:00 EST"; $datestr2 = "2/Mar/1999 15:30:00 +0500"; OO method $date1 = new Date::Manip::Date; $date2 = $date1->new_date; $date1->parse($datestr1); $date2->parse($datestr2); $date1->cmp($date2); => -1, 0, 1 Functional $date1 = ParseDate($datestr1); $date2 = ParseDate($datestr2); Date_Cmp($date1,$date2); => -1, 0, 1 TO EXTRACT INFORMATION ABOUT A DATE OR DELTA
If you have a date or a delta, you can extract information about them as follows: $datestr = "1:24:08 PM EST Feb 3, 1996"; $deltastr = "12 hours ago"; OO method $date = new Date::Manip::Date; $delta = $date->new_delta(); $date->parse($datestr); $delta->parse($deltastr); $date->printf("It is now %T on %b %e, %Y."); => "It is now 13:24:08 on Feb 3, 1996." $delta->printf("In %hv hours, %mv minutes, %sv seconds"); => "In -12 hours, 0 minutes, 0 seconds"; Functional UnixDate($datestr,"It is now %T on %b %e, %Y."); => "It is now 13:24:08 on Feb 3, 1996." Delta_Format($deltastr,"In %hv hours, %mv minutes, %sv seconds"); => "In -12 hours, 0 minutes, 0 seconds"; The Date::Manip::Date manual contains all of the format codes that can be used to extract information from a date. The Date::Manip::Delta manual contains the codes for a delta. WORKING WITH EPOCH
Date::Manip can easily be used to work with the number of seconds since the epoch (Jan 1, 1970 00:00:00 UTC). If you have a date, and you want to find out how many seconds it is after the epoch, you can do it in the following ways: $datestr = "1999-04-30-15:30:00 EDT"; $secs = 1234567; OO method To find out how many seconds have elapsed on a certain date, you can do the following: $date = new Date::Manip::Date; $err = $date->parse($datestr); $date->printf('%s'); => number of seconds To find out the date that is a certain number of seconds since the epoch, you can use the following: $date = new Date::Manip::Date; $err = $date->parse("epoch $secs"); $date now contains the date wanted (in the local time zone) Functional To find out how many seconds have elapsed: UnixDate($datestr,'%s'); => number of seconds To find the date that is a number of seconds since the epoch: ParseDateString("epoch $secs"); Note that Date::Manip will work with both positive seconds (for dates that have come since the epoch) and negative seconds (for dates that occurred before the epoch). RECURRING EVENTS
To find a list of dates where a recurring event happens (even very complex recurrences), do the following: OO method # To find the 2nd Tuesday of every month from Jan 1 1999 to Apr 30 1999 $recur = new Date::Manip::Recur; $start = $recur->new_date(); $end = $recur->new_date(); $start->parse("Jan 1 1999"); $end->parse("Apr 30 1999"); $recur->parse("0:1*2:2:0:0:0",$start,$end); @date = $recur->dates(); # To find the Monday after Easter in 1997-1999 $recur = new Date::Manip::Recur; $recur->parse("*1997-1999:0:0:0:0:0:0*EASTER,ND1"); @date = $recur->dates(); Functional # To find the 2nd Tuesday of every month from Jan 1 1999 to Apr 30 1999 @date = ParseRecur("0:1*2:2:0:0:0","","Jan 1 1999","Apr 30 1999"); # To find the Monday after Easter in 1997-1999. @date = ParseRecur("*1997-1999:0:0:0:0:0:0*EASTER,ND1"); The Date::Manip::Recur manual contains information about recurring events. WORKING WITH DATES IN ANOTHER LANGUAGE
If you want to work with dates in a language other than English (but you are only working with a single language), do the following: OO method $date = new Date::Manip::Date; $date->config("Language","French","DateFormat","non-US"); $date->parse("1er decembre 1990"); Functional Date_Init("Language=French","DateFormat=non-US"); $date = ParseDate("1er decembre 1990"); The Date::Manip::Config manual has a list of all supported languages (in the section on the Language config variable). The meaning of the DateFormat config variable is also included. WORKING WITH TWO DIFFERENT LANGUAGES
If you want to work with dates in two (or more) languages, it is STRONGLY recommended that you use the OO interface. The functional interface will be much slower since it has to re-initialize a lot of language-specific stuff every time you switch back and forth between languages. OO method $date_eng = new Date::Manip::Date; $date_eng->config("Language","English","DateFormat","US"); $date_fre = new Date::Manip::Date; $date_fre->config("Language","French","DateFormat","non-US"); Use the $date_eng object to do English operations, the $date_fre object to do French operations. Functional If you are working with both French and English dates, you can call the following to switch between them: Date_Init("Language=French","DateFormat=non-US"); Date_Init("Language=English","DateFormat=US"); This is NOT recommended. Use the OO method instead. BUGS AND QUESTIONS
Please refer to the Date::Manip::Problems documentation for information on submitting bug reports or questions to the author. SEE ALSO
Date::Manip - main module documentation LICENSE
This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR
Sullivan Beck (sbeck@cpan.org) perl v5.12.1 2010-01-12 Date::Manip::Examples(3)
All times are GMT -4. The time now is 05:48 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy