AWK Command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK Command
# 22  
Old 08-01-2012
Try this
Code:
$awk -F"|" '{gsub(" ","",$7);if($7 ~ /^Taskstarted$/){print $1}}' filename

output is
Code:
2012-05-09 10:28:47.94

This User Gave Thanks to raj_saini20 For This Post:
# 23  
Old 08-06-2012
I am facing another issue
I have a file:
Code:
2012-05-09 10:29:29.846 | SYNC  | 00041 | DEBUG   | Customer_Receive Payment | Task            | Task started on a component            | B678C56D-96DA-4FFC-B40E-9A032A2EB12E          | jms:Send to Remit Splits            | {}
2012-05-09 10:29:29.997 | SYNC  | 00041 | DEBUG   | Customer_Receive Payment | Task            | Task started on a component            | B678C56D-96DA-4FFC-B40E-9A032A2EB12E          | filesystem:Reports_5                | {}
2012-05-09 10:29:29.979 | SYNC  | 00052 | DEBUG   | Customer_Receive Payment | Exchange        | Exchange processing completed          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E-0000005  | jms:Send to Remit Splits            | {}
2012-05-09 10:29:30.028 | SYNC  | 00052 | DEBUG   | Customer_Receive Payment | Exchange        | Exchange processing completed          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E-0000006  | filesystem:Reports_5                | {}
2012-05-09 10:29:30.041 | SYNC  | 00052 | DEBUG   | Customer_Receive Payment | Exchange        | Exchange processing completed          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E-0000003  | xengine:CERR to ECR CF              | {}
2012-05-09 10:29:30.227 | SYNC  | 00052 | DEBUG   | Customer_Receive Payment | Exchange        | Exchange processing completed          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E-0000002  | filesystem:Reports_5                | {}
2012-05-09 10:29:30.237 | SYNC  | 00042 | DEBUG   | Customer_Receive Payment | Task            | Task completed on a component          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E          | xengine:Validation, Split           | {}
2012-05-09 10:29:30.239 | SYNC  | 00042 | DEBUG   | Customer_Receive Payment | Task            | Task completed on a component          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E          | service.adapter:UCF Version Creator | {}
2012-05-09 10:29:30.244 | SYNC  | 00042 | DEBUG   | Customer_Receive Payment | Task            | Task completed on a component          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E          | filesystem:CERR                     | {}
2012-05-09 10:29:30.245 | SYNC  | 00042 | DEBUG   | Customer_Receive Payment | Task            | Task completed on a component          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E          | xengine:CERR to ECR CF              | {}
2012-05-09 10:29:30.246 | SYNC  | 00042 | DEBUG   | Customer_Receive Payment | Task            | Task completed on a component          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E          | filesystem:Reports_5                | {}
2012-05-09 10:29:30.246 | SYNC  | 00042 | DEBUG   | Customer_Receive Payment | Task            | Task completed on a component          | B678C56D-96DA-4FFC-B40E-9A032A2EB12E          | jms:Send to Remit Splits            | {}
2012-05-09 10:29:30.060 | SYNC  | 00041 | DEBUG   | EUO_Main Remittance Flow | Task            | Task started on a component            | F7852A81-1BE0-42D6-83E1-8DAADF816CEC          | jms:JMS Inbound                     | {}
2012-05-09 10:32:40.278 | SYNC  | 00042 | DEBUG   | EUO_Main Remittance Flow | Task            | Task completed on a component          | F7852A81-1BE0-42D6-83E1-8DAADF816CEC          | jms:JMS Inbound                     | {}
2012-05-09 10:29:30.062 | SYNC  | 00041 | DEBUG   | EUO_Main Remittance Flow | Task            | Task started on a component            | F7852A81-1BE0-42D6-83E1-8DAADF816CEC          | scriptrunner:Copy Msg Props to Exchange | {}
2012-05-09 10:29:30.635 | SYNC  | 00041 | DEBUG   | EUO_Main Remittance Flow | Task            | Task started on a component            | F7852A81-1BE0-42D6-83E1-8DAADF816CEC          | service.adapter:UCF Version Creator | {}
2012-05-09 10:29:30.777 | SYNC  | 00041 | DEBUG   | EUO_Main Remittance Flow | Task            | Task started on a component            | F7852A81-1BE0-42D6-83E1-8DAADF816CEC          | subroute.processor:Claim Remit Processor | {}
2012-05-09 10:30:02.511 | SYNC  | 00041 | DEBUG   | EUO_Main Remittance Flow | Task            | Task started on a component            | F7852A81-1BE0-42D6-83E1-8DAADF816CEC          | eip.router:Action                   | {}
2012-05-09 10:30:02.514 | SYNC  | 00041 | DEBUG   | EUO_Main Remittance Flow | Task            | Task started on a component            | F7852A81-1BE0-42D6-83E1-8DAADF816CEC          | eip.router:Data Type                | {}
2012-05-09 10:30:02.517 | SYNC  | 00041 | DEBUG   | EUO_Main Remittance Flow | Task            | Task started on a component            | F7852A81-1BE0-42D6-83E1-8DAADF816CEC          | subroute.processor:Original Data Processing | {}
2012-05-09 10:29:30.632 | SYNC  | 00052 | DEBUG   | EUO_Main Remittance Flow | Exchange        | Exchange processing completed          | F7852A81-1BE0-42D6-83E1-8DAADF816CEC-0000000  | scriptrunner:Copy Msg Props to Exchange | {}
2012-05-09 10:32:05.287 | SYNC  | 00052 | DEBUG   | EUO_Main Remittance Flow | Exchange        | Exchange processing completed          | F7852A81-1BE0-42D6-83E1-8DAADF816CEC-0000003  | subroute.processor:Original Data Processing | {}
2012-05-09 10:32:05.288 | SYNC  | 00052 | DEBUG   | EUO_Main Remittance Flow | Exchange        | Exchange processing completed          | F7852A81-1BE0-42D6-83E1-8DAADF816CEC-0000003  | eip.router:Data Type                | {}
2012-05-09 10:32:05.289 | SYNC  | 00052 | DEBUG   | EUO_Main Remittance Flow | Exchange        | Exchange processing completed          | F7852A81-1BE0-42D6-83E1-8DAADF816CEC-0000003  | eip.router:Action                   |{}

I want to fetch the difference between the time (which is in first column) for the component(which is in 8th column) having the value Task started on a component and either "Exchange processing completed/Task completed on a component" which ever comes later.

Expected output
Code:
jms:Send to Remit Splits   B678C56D-96DA-4FFC-B40E-9A032A2EB12E   400

same for all other components. There is an ID in 7th column which will have "Task started on a component" and "completed" within that ID
Do I need to read the entire file to check where is "Exchange processing completed/Task completed on a component"
What is the best possible way of doing it?
Please help me in it.
# 24  
Old 08-06-2012
value "scriptrunner:Copy Msg Props to Exchange" at 9th feild is not having same value at 8th field for "Task started on a component" and either "Exchange processing completed/Task completed on a component"

How to deal with such cases?
Give sample output if you can
# 25  
Old 08-06-2012
The expected output is
Code:
jms:Send to Remit Splits   B678C56D-96DA-4FFC-B40E-9A032A2EB12E   400
--this 400 is result of((10:29:30.246)-(10:29:29.846))

filesystem:Reports_5  B678C56D-96DA-4FFC-B40E-9A032A2EB12E 249
--249 is ((10:29:30.246)-(10:29:29.997))

# 26  
Old 08-06-2012
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

# 27  
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.
# 28  
Old 08-06-2012
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

This User Gave Thanks to raj_saini20 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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
Login or Register to Ask a Question