The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 10-18-2006
Registered User
 

Join Date: Oct 2006
Posts: 22
I need Help

09:30:04,438 INFO : FIXEngine[engine1]: INFO: FIXConnection.sendMessage(fixID=sama): pt=1, fixSendTime=1161153004438, msg=8=FIX.4.2^A9=190^A35=D^A49=012^A56=
SAMA^A115=012^A34=294^A116=I0120002^A144=2^A52=20061018-06:30:04.413^A11=020I80A3400^A1=1200212023^A63=1^A21=1^A55=2170^A54=2^A60=20061018-06:30:04^A38=317^A
40=2^A44=43.5^A59=0^A386=1^A336=510^A10=059^A



i have a file like this I need to get the Bold time in a Varibale and the 11=020I80A3400 also in A varibale so please Help me to do that please
Reply With Quote
Forum Sponsor
  #2 (permalink)  
Old 10-18-2006
Registered User
 

Join Date: Oct 2006
Location: Bangalore, India
Posts: 41
the following will only work if the pattern in bold occurs in the specified places always n the length of the pattern also remains same. m is the file in which i have stored the file u had given.
x=`sed -n 1p m|awk -F"^" '{print $1}'|cut -c 1-12`
y=`sed -n 2p m|awk -F"^" '{print $7}'|cut -c 2-14`

so plz specify the exact nature of the problem
Reply With Quote
  #3 (permalink)  
Old 10-18-2006
Registered User
 

Join Date: Oct 2006
Posts: 22
I have a tag in the file it's 35=D before this tag i have the time of the tag which I mentioned about it before and after the 35=D I have another tag which is 11=some string ex(11=0011IN)
so the file look like that

09:30:04,438 INFO : FIXEngine[engine1]: INFO: FIXConnection.sendMessage(fixID=sama): pt=1, fixSendTime=1161153004438, msg=8=FIX.4.2^A9=190^A35=D^A49=012^A56=
SAMA^A115=012^A34=294^A116=I0120002^A144=2^A52=20061018-06:30:04.413^A11=020I80A3400^A1=1200212023^A63=1^A21=1^A55=2170^A54=2^A60=20061018-06:30:04^A38=317^A
40=2^A44=43.5^A59=0^A386=1^A336=510^A10=059^A

and usually 35=D is in the same line of the Time and the 11=111111 in the next line


so Please I need Help

Last edited by habuzahra; 10-18-2006 at 06:57 AM.
Reply With Quote
  #4 (permalink)  
Old 10-18-2006
Registered User
 

Join Date: Mar 2006
Location: Bangalore,India
Posts: 1,397
Code:
sed -n "/35=D/{N;/11=/{s/^\([^ ]*\).*\n.*\(11=[^^]*\).*$/\1 \2/p;};}" file
Reply With Quote
  #5 (permalink)  
Old 10-18-2006
Registered User
 

Join Date: Oct 2006
Location: NewYork
Posts: 21
Unhappy

Can you please explain your statement. By looking at that, it is complex to understand.
Reply With Quote
  #6 (permalink)  
Old 10-18-2006
Registered User
 

Join Date: Mar 2006
Location: Bangalore,India
Posts: 1,397
Quote:
Originally Posted by ravikirankethe
Can you please explain your statement. By looking at that, it is complex to understand.
/35=D/{...}

If the line contains the pattern 35=D then execute the commands within the paranthesis.

N

get the next line and append it to the pattern space

/11=/{..}

If the pattern space contains the pattern 11= then execute the commands within the paranthesis.


s/^\([^ ]*\).*\n.*\(11=[^^]*\).*$/\1 \2/p

What we need in the first line is "09:30:04,438" which is separated from next word by space. This string is matched by \([^ ]*\). The next string is matched by \(11=[^^]*\) which is separated from the next field by ^.
Reply With Quote
  #7 (permalink)  
Old 10-18-2006
Registered User
 

Join Date: Oct 2006
Location: NewYork
Posts: 21
Thanks Anbu !!
BTW, Habuzahra, are you able to continue your work?
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools
Display Modes




All times are GMT -7. The time now is 12:31 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Global Fact Book

Content Relevant URLs by vBSEO 3.2.0