Sponsored Content
Full Discussion: AWK Command
Top Forums Shell Programming and Scripting AWK Command Post 302682337 by elixir_sinari on Monday 6th of August 2012 06:06:09 AM
Old 08-06-2012
Quote:
Originally Posted by raj_saini20
Try this
Code:
awk -F"|" 'BEGIN{i=1}($7 ~ /Task started on a component/){if(!a[$9]){a[$9]=$1;b[$9]=$8;c[i]=$9;i++}}
($7 ~ /Exchange processing completed|Task completed on a component/){if(a[$9]){d[$9]=$1}}
END{for (j=1;j<i;j++){if(a[c[j]]&&d[c[j]]){split(a[c[j]],s_tm," ");split(d[c[j]],e_tm," ");
x=((substr(s_tm[2],1,2)*3600)+(substr(s_tm[2],4,2)*60)+substr(s_tm[2],7,2))*1000+substr(s_tm[2],10,3)
y=((substr(e_tm[2],1,2)*3600)+(substr(e_tm[2],4,2)*60)+substr(e_tm[2],7,2))*1000+substr(e_tm[2],10,3);print c[j]" "b[c[j]]" "y-x}}}' inputfile

Output is
Code:
jms:Send to Remit Splits              B678C56D-96DA-4FFC-B40E-9A032A2EB12E           400
 filesystem:Reports_5                  B678C56D-96DA-4FFC-B40E-9A032A2EB12E           249
 jms:JMS Inbound                       F7852A81-1BE0-42D6-83E1-8DAADF816CEC           190218
 scriptrunner:Copy Msg Props to Exchange   F7852A81-1BE0-42D6-83E1-8DAADF816CEC           570
 eip.router:Action                     F7852A81-1BE0-42D6-83E1-8DAADF816CEC           122778
 eip.router:Data Type                  F7852A81-1BE0-42D6-83E1-8DAADF816CEC           122774
 subroute.processor:Original Data Processing   F7852A81-1BE0-42D6-83E1-8DAADF816CEC           122770

Aww...reading that hurts.
Please try to present such humongous scripts in a better way.
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies

2. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies

3. UNIX for Dummies Questions & Answers

Basic awk question...getting awk to act on $1 of the command itself

I have a script problem that I am not able to solve due my very limited understanding of unix/awk. This is the contents of test.sh awk '{print $1}' From the prompt if I enter: ./test.sh Hello World I would expect to see "Hello" but all I get is a blank line. Only then if I enter "Hello... (2 Replies)
Discussion started by: JasonHamm
2 Replies

4. Shell Programming and Scripting

awk command for simple join command but based on 2 columns

input1 a_a a/a 10 100 a1 a_a 20 200 b1 b_b 30 300 input2 a_a a/a xxx yyy a1 a1 lll ppp b1 b_b kkk ooo output a_a a/a 10 100 xxx yyy (2 Replies)
Discussion started by: ruby_sgp
2 Replies

5. Shell Programming and Scripting

awk command in script gives error while same awk command at prompt runs fine: Why?

Hello all, Here is what my bash script does: sums number columns, saves the tot in new column, outputs if tot >= threshold val: > cat getnon0file.sh #!/bin/bash this="getnon0file.sh" USAGE=$this" InFile="xyz.38" Min="0.05" # awk '{sum=0; for(n=2; n<=NF; n++){sum+=$n};... (4 Replies)
Discussion started by: catalys
4 Replies

6. Shell Programming and Scripting

awk command to compare a file with set of files in a directory using 'awk'

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)
Discussion started by: anandek
10 Replies

7. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

8. Shell Programming and Scripting

Pass awk field to a command line executed within awk

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)
Discussion started by: tuxer
4 Replies
Padre::Role::Task(3pm)					User Contributed Perl Documentation				    Padre::Role::Task(3pm)

NAME
Padre::Role::Task - A role for objects that commission tasks DESCRIPTION
This is a role that should be inherited from by objects in Padre's permanent model that want to commision tasks to be run and have the results fed back to them, if the answer is still relevant. Task Revisions Objects in Padre that commission tasks to run in the background can continue processing and changing state during the queue'ing and/or execution of their background tasks. If the object state changes in such a way as to make the results of a background task irrelevant, a mechanism is needed to ensure these background tasks are aborted where possible, or their results thrown away when not. Padre::Role::Task provides the concept of "task revisions" to support this functionality. A task revision is an incrementing number for each owner that remains the same as long as the results from any arbitrary launched task remains relevant for the current state of the object. When an object transitions a state boundary it will increment it's revision, whether there are any running tasks or not. When a task has completed the task manager will look up the owner (if it has one) and check to see if the current revision of the owner object is the same as when the task was scheduled. If so the Task Manager will call the "on_finish" handler passing it the task. If not, the completed task will be silently discarded. Sending messages to your tasks The Padre::Task API supports bidirection communication between tasks and their owners. However, when you commission a task via "task_request" the task object is not returned, leaving you without access to the task and thus without a method by which to send messages to the child. This is intentional, as there is no guarentee that your task will be launched immediately and so sending messages immediately may be unsafe. The task may need to be delayed until a new background worker can be spawned, or for longer if the maximum background worker limit has been reached. The solution is provided by the "on_message" handler, which is passed the parent task object as its first parameter. Tasks which expect to be sent messages from their owner should send the owner a greeting message as soon as they have started. Not only does this let the parent know that work has commenced on their task, but it provides the task object to the owner once there is certainty that any parent messages can be dispatched to the child successfully. In the following example, we assume a long running "service" style task that will need to be interacted with over time. sub service_start { my $self = shift; $self->task_reset; $self->task_request( task => 'My::Service', on_message => 'my_message', on_finish => 'my_finish', ); } sub my_message { my $self = shift; my $task = shift; # In this example our task sends an empty message to indicate "started" unless ( @_ ) { $self->{my_service} = $task; return; } # Handle other messages... } METHODS
task_owner Padre::Role::Task->task_owner( 1234 ); The "task_owner" static method is a convenience method which takes an owner id and will look up the owner object. Returns the object if it still exists and has not changed it's task revision. Returns "undef" of the owner object no longer exists, or has changed its task revision since the original owner id was issued. task_manager The "task_manager" method is a convenience for quick access to the Padre's Padre::TaskManager instance. task_revision The "task_revision" accessor returns the current task revision for an object. task_reset The "task_reset" method is called when the state of an owner object significantly changes, and outstanding tasks should be deleted or ignored. It will change the task revision of the owner and request the task manager to send a standard "cancel" message to any currently executing background tasks, allowing them to terminate elegantly (if they handle task_request $self->task_request( task => 'Padre::Task::SomeTask', on_message => 'message_handler_method', on_finish => 'finish_handler_method', my_param1 => 123, my_param2 => 'abc', ); The "task_request" method is used to spawn a new background task for the owner, loading the class and registering for callback messages in the process. The "task" parameter indicates the class of the task to be executed, which must inherit from Padre::Task. The class itself will be automatically loaded if required. The optional "on_message" parameter should be the name of a method (which must exist if provided) that will receive owner-targetted messages from the background process. The method will be passed the task object (as it exists after the "prepare" phase in the parent thread) as its first parameter, followed by any values passed by the background task. If no "on_message" parameter is provided the default method null "task_message" will be called. The optional "on_finish" parameter should be the name of a method (which must exist if provided) that will receive the task object back from the background worker once the task has completed, complete with any state saved in the task during its background execution. It is passed a single parameter, which is the Padre::Task object. If no "on_finish" parameter is provided the default method null "task_finish" will be called. Any other parameters are passed through the constructor method of the task. task_finish The "task_finish" method is the default handler method for completed tasks, and will be called for any "task_request" where no specific "on_finish" handler was provided. If your object issues only one task, or if you would prefer a single common finish handler for all your different tasks, you should override this method instead of explicitly defining an "on_finish" handler for every task. The default implementation ensures that every task has an appropriate finish handler by throwing an exception with a message indicating the owner and task class for which no finish handler could be found. task_message The "task_message" method is the default handler method for completed tasks, and will be called for any "task_request" where no specific "on_message" handler was provided. If your object issues only one task, or if you would prefer a single common message handler for all your different tasks, you should override this method instead of explicitly defining an "on_finish" handler for every task. If none of your tasks will send messages back to their owner, you do not need to define this method. The default implementation ensures that every task has an appropriate finish handler by throwing an exception with a message indicating the owner and task class for which no finish handler could be found. COPYRIGHT &; LICENSE Copyright 2008-2012 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. perl v5.14.2 2012-06-27 Padre::Role::Task(3pm)
All times are GMT -4. The time now is 10:24 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy