Visit Our UNIX and Linux User Community


Search several string and convert into a single line for each search string using awk command AIX?.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search several string and convert into a single line for each search string using awk command AIX?.
# 1  
Old 11-23-2012
Search several string and convert into a single line for each search string using awk command AIX?.

I need to search the file using strings "Request Type" , " Request Method" , "Response Type" and by using result set find the xml tags and convert into a single line?. below are the scenarios.

Code:
Cat test

Nov 10, 2012 5:17:53 AM 
INFO: Request Type
Line 1. <fullOperation>MAKE:NUMBER:9366109380:PPAY2;</fullOperation>
Line 2. <starttime>20081003000047</starttime>
Line 3. <stoptime>20081003000047</stoptime>
Line 4. <fullResult>940120105;;</fullResult>
Line 5. <status>FAILED</status>
Nov 10, 2012 5:20:53 AM
WARNING: Request Method
Line 1. <fullOperation>MAKE:NUMBER:5424683284:PPAY2;</fullOperation>
Line 2. <starttime>20081003000047</starttime>
Line 3. <stoptime>20081003000047</stoptime>
Line 4. <fullResult>940120105;;</fullResult>
Line 5. <status>FAILED</status>
Nov 10, 2012 5:25:53 AM
FATAL: Response Type
Line 1. <fullOperation>MAKE:NUMBER:5424678435:PPAY2;</fullOperation>
Line 2. <starttime>20081003000047</starttime>
Line 3. <stoptime>20081003000047</stoptime>
Line 4. <fullResult>940120105;;</fullResult>
Line 5. <status>FAILED</status>

Result
---------

Nov 10, 2012 5:17:53 AM,INFO,Request Type,MAKE:NUMBER:9366109380:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED
Nov 10, 2012 5:20:53 AM,WARNING,Request Method,MAKE:NUMBER:5424683284:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED
Nov 10, 2012 5:25:53 AM,FATAL,Response Type,MAKE:NUMBER:5424678435:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED


any help will be much appreciated.

many thanks
laknar

Last edited by Scott; 11-24-2012 at 09:17 AM.. Reason: Replaced ICODE tag with CODE tag. This is the reason we didn't used to have an ICODE tag button!
# 2  
Old 11-23-2012
Code:
awk -F'[<|>]' ' {
 if($0 ~ /Line/)
   printf "%s,", $3;
 if($0 ~ /^Nov/)
   printf "\n%s,", $0;
 if($0 ~ /(Request|Response)/)
  printf "%s,", $0;
} END { printf "\n"; } ' infile

Nov 10, 2012 5:17:53 AM,INFO: Request Type,MAKE:NUMBER:9366109380:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED,
Nov 10, 2012 5:20:53 AM,WARNING: Request Method,MAKE:NUMBER:5424683284:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED,
Nov 10, 2012 5:25:53 AM,FATAL: Response Type,MAKE:NUMBER:5424678435:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED,

# 3  
Old 11-23-2012
Hi bipinajith, Thank you so much for your quick response.

Can you please explain this script . Actually the date part could be any month not only "Nov" month. And for each search string i need to read the previous record to capture the date, After search string there could be some records without having HTML tags. In this scenario will this script work?.

Thanks again. i will test this script.

Regards,
Laknar
# 4  
Old 11-23-2012
Date part check you can replace with (string ending with AM or PM):-
Code:
if($0 ~ /(PM$|AM$)/)

For Lines without tags, this script will fail.
# 5  
Old 12-09-2012
The script provided by bipinajith works well. But there could be many date above each request type in which i need to pick the date immediately before the Request type string. i have highlighted the dates in bold. we cannot seach with date and time since it will be changed month on month. Could you please suggest me to get this date?.

HTML Code:
Cat test


Nov 10, 2012 5:12:53 AM 
Nov 10, 2012 5:13:53 AM 
[B]Nov 10, 2012 5:17:53 AM[/B]
INFO: Request Type
Line 1. <fullOperation>MAKE:NUMBER:9366109380:PPAY2;</fullOperation>
Line 2. <starttime>20081003000047</starttime>
Line 3. <stoptime>20081003000047</stoptime>
Line 4. <fullResult>940120105;;</fullResult>
Line 5. <status>FAILED</status>
Nov 10, 2012 5:18:53 AM 
Nov 10, 2012 5:19:53 AM 
[B]Nov 10, 2012 5:20:53 AM[/B]
WARNING: Request Method
Line 1. <fullOperation>MAKE:NUMBER:5424683284:PPAY2;</fullOperation>
Line 2. <starttime>20081003000047</starttime>
Line 3. <stoptime>20081003000047</stoptime>
Line 4. <fullResult>940120105;;</fullResult>
Line 5. <status>FAILED</status>
Nov 10, 2012 5:22:53 AM 
Nov 10, 2012 5:23:53 AM
[B]Nov 10, 2012 5:25:53 AM[/B]
FATAL: Response Type
Line 1. <fullOperation>MAKE:NUMBER:5424678435:PPAY2;</fullOperation>
Line 2. <starttime>20081003000047</starttime>
Line 3. <stoptime>20081003000047</stoptime>
Line 4. <fullResult>940120105;;</fullResult>
Line 5. <status>FAILED</status>

Result
---------

Nov 10, 2012 5:17:53 AM,INFO,Request Type,MAKE:NUMBER:9366109380:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED
Nov 10, 2012 5:20:53 AM,WARNING,Request Method,MAKE:NUMBER:5424683284:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED
Nov 10, 2012 5:25:53 AM,FATAL,Response Type,MAKE:NUMBER:5424678435:PPAY2;,20081003000047,20081003000047,940120105;;,FAILED
# 6  
Old 12-09-2012
Code:
awk -F'[<|>]' ' {
 if($0 ~ /(PM|AM)/) {
  dt=$0;
  getline;
  if($0 ~ /(Request|Response)/) {
   rt=$0; getline; fo=$3; getline; srt=$3; getline; spt=$3; getline; fr=$3; getline; st=$3;
   printf "%s,%s,%s,%s,%s,%s,%s\n", dt, rt, fo, srt, spt, fr, st;
  }
 }
} ' test


Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Search for a string,delete the line and replace with new string in a file

Hi Everyone, I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file. I am very new to unix. Kindly help... (10 Replies)
Discussion started by: Pradhikshan
10 Replies

2. UNIX for Advanced & Expert Users

Pass variable to awk command search string

I must have forgot how to do this, but, I am attempting to enter a variable into an awk / gawk search pattern. I am getting a value from user input to place in a specific section of a 132 character string. my default command is .... gawk --re-interval '/^(.{3}P .{4}CYA.{8}1)/' ... (3 Replies)
Discussion started by: sdeevers
3 Replies

3. Shell Programming and Scripting

Search string within a file and list common words from the line having the search string

Hi, Need your help for this scripting issue I have. I am not really good at this, so seeking your help. I have a file looking similar to this: Hello, i am human and name=ABCD. How are you? Hello, i am human and name=PQRS. I am good. Hello, i am human and name=ABCD. Good bye. Hello, i... (12 Replies)
Discussion started by: royzlife
12 Replies

4. Shell Programming and Scripting

Search a string in a text file and add another string at the end of line

Dear All I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB... (5 Replies)
Discussion started by: suryanarayana
5 Replies

5. Shell Programming and Scripting

Search a string in a text file and add another string at the particular position of a line

I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB and add/replace... (1 Reply)
Discussion started by: suryanarayana
1 Replies

6. Shell Programming and Scripting

search string in a file and retrieve 10 lines including string line

Hi Guys, I am trying to write a perl script to search a string "Name" in the file "FILE" and also want to create a new file and push the searched string Name line along with 10 lines following the same. can anyone of you please let me know how to go about it ? (8 Replies)
Discussion started by: sukrish
8 Replies

7. Shell Programming and Scripting

awk print second line after search string

I have multiple config files where I need to pull the ip address from loopback3. The format is the same in every file, the ip is the second line after interface loopback3. interface loopback2 loopback description router ID ip address 192.168.1.1 interface loopback3 loopback description... (3 Replies)
Discussion started by: numele
3 Replies

8. Shell Programming and Scripting

Awk command for search a string in lspv

I 've got this retourn when i tape the commande lspv: hdisk0 00c3fce454950416 rootvg active hdisk1 00c3fce454950416 rootvg active I want to verify if hdisk0 et hdisk1 have the same pvid (ex : 00c3fce454950416)? Can... (8 Replies)
Discussion started by: khalidou13
8 Replies

9. Shell Programming and Scripting

Awk command for search a string in lspv

I want to know wich hdisk have only one pvid and also display hdisk with two pvid. hdisk1 00c3fcd4e516183f testvg active hdisk2 00c3fcd4e516189b testvg active hdisk3 00c3fcd4e51618ec testvg ... (1 Reply)
Discussion started by: khalidou13
1 Replies

10. Shell Programming and Scripting

Perl: Search for string on line then search and replace text

Hi All, I have a file that I need to be able to find a pattern match on a line, search that line for a text pattern, and replace that text. An example of 4 lines in my file is: 1. MatchText_randomNumberOfText moreData ReplaceMe moreData 2. MatchText_randomNumberOfText moreData moreData... (4 Replies)
Discussion started by: Crypto
4 Replies

Featured Tech Videos