parsing a log file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers parsing a log file
# 1  
Old 04-23-2009
parsing a log file

I need help in parsing the following log files.

10 Apr 2009 0:16:16 [6|1|3|2] * name: Tuna Belly Format: Well done, Price: 999 only
10 Apr 2009 0:16:16 [4|0|3|2] * name: Roast Beef Format: Raw, Price: 55 c
10 Apr 2009 0:16:16 [5|5|4|2] * name: Pasta Format: Dry, Price: 88.43 only
etcetc

I need to parse this to get three columns containing the format and price
6 Well done 999 only
6 Raw 55c
6 Dry 88.43
etcetc
6 is the 1st digit in [6|1|3|2].

I've tried using awk with substring but it stil cant get the desired result
Thanks
# 2  
Old 04-23-2009
awk -F '\[|\||:|,' '{print $4, $9, $11}'
# 3  
Old 04-23-2009
Quote:
Originally Posted by hongwei
awk -F '\[|\||:|,' '{print $4, $9, $11}'
i forgot to mention that the log file contains many data:

ex.
10 Apr 2009 0:16:16 [6|1|3|2] * name: Tuna Belly Format: Well done, Price: 999 only
data data data data etc etc
data data data data etc etc
data data data data etc etc
10 Apr 2009 0:16:16 [4|0|3|2] * name: Roast Beef Format: Raw, Price: 55 c
data data data data etc etc
data data data data etc etc
data data data data etc etc
10 Apr 2009 0:16:16 [5|5|4|2] * name: Pasta Format: Dry, Price: 88.43 only
data data data data etc etc
data data data data etc etc
data data data data etc etc

will the script -> awk -F '\[|\||:|,' '{print $4, $9, $11}' still be able to identity only desired line?
thanks
# 4  
Old 04-23-2009
Quote:
Originally Posted by izuma
i forgot to mention that the log file contains many data:

ex.
10 Apr 2009 0:16:16 [6|1|3|2] * name: Tuna Belly Format: Well done, Price: 999 only
data data data data etc etc
data data data data etc etc
data data data data etc etc
10 Apr 2009 0:16:16 [4|0|3|2] * name: Roast Beef Format: Raw, Price: 55 c
data data data data etc etc
data data data data etc etc
data data data data etc etc
10 Apr 2009 0:16:16 [5|5|4|2] * name: Pasta Format: Dry, Price: 88.43 only
data data data data etc etc
data data data data etc etc
data data data data etc etc

will the script -> awk -F '\[|\||:|,' '{print $4, $9, $11}' still be able to identity only desired line?
thanks
Without seeing the specifics of the OTHER records/lines, we can only guess.
The guess is based on the number of fields - greater or equal to 11:
Code:
nawk -F '([[]|[|]|:|,)' 'NF>=11{print $4, $9, $11}' myFile

# 5  
Old 04-23-2009
Quote:
Originally Posted by vgersh99
Without seeing the specifics of the OTHER records/lines, we can only guess.
The guess is based on the number of fields - greater or equal to 11:
Code:
nawk -F '([[]|[|]|:|,)' 'NF>=11{print $4, $9, $11}' myFile

10 Apr 2009 0:16:16 [6|1|3|2] * name: Tuna Belly Format: Well done, Price: 999 only
14 Apr 2009 0:00:57 [6|1|3|2] * Order menu: 'D:\resto/menu/etcetc' opened ( 2 of
7 )
14 Apr 2009 0:00:57 [6|1|3|2] * Order: 18

well they all have different number of fields, i'll try your scripts. thanks. Smilie
# 6  
Old 04-23-2009
Quote:
Originally Posted by izuma
10 Apr 2009 0:16:16 [6|1|3|2] * name: Tuna Belly Format: Well done, Price: 999 only
14 Apr 2009 0:00:57 [6|1|3|2] * Order menu: 'D:\resto/menu/etcetc' opened ( 2 of
7 )
14 Apr 2009 0:00:57 [6|1|3|2] * Order: 18

well they all have different number of fields, i'll try your scripts. thanks. Smilie
Well.... then you'd need to identify the 'desired' fields somehow differently.
# 7  
Old 04-23-2009
Quote:
Originally Posted by vgersh99
Well.... then you'd need to identify the 'desired' fields somehow differently.
is this possible?

awk -F '([[]|[|]|:|,)' 'NF>=11 && substr($0,$32,$4)=="name" {print $4, $9, $11}' myfile.log

because unfortunately there are two lines that have greater than 11 lines, so the script also prints out the other lines.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

HELP on parsing this log file

Hi, I have a log file that looks like below and I am wanting to know if there is a better way of parsing it from how I am doing it right now. I am looking for when an application service is OFFLINE and ONLINE. This log file is getting written into every 30 minutes ... (1 Reply)
Discussion started by: newbie_01
1 Replies

2. Shell Programming and Scripting

Parsing log file for last 2 hours

I want to parse a log file which i am grepping root user connection but is showing whole day and previous day detail as well. First i want to see last 2 hours log file then after that i want to search particular string. Lets suppose right now its 5:00PM, So i want to see the log of 3:00PM to... (6 Replies)
Discussion started by: learnbash
6 Replies

3. Shell Programming and Scripting

Parsing Log File help

Hi, I am a newbie to scripting. I have multiple log files (saved as .gz) in a directory that looks like this 01-01-2013 10:00 pn: 123 01-01-2013 10:00 sn: 987 01-01-2013 10:00 Test1 01-01-2013 10:00 Result: Pass 01-01-2013 10:00 Time: 5:00 01-01-2013 10:00 Test2 01-01-2013 10:00... (3 Replies)
Discussion started by: linuxnew
3 Replies

4. Shell Programming and Scripting

Help Parsing a Log File

Hello all, I am new to scripting and I have written a script that performs an Rsync on my NAS and then moves on to send me an email with the status etc. The problem is that I think Rsync is taking to long to complete and the IF statement is timing out, as it doesn't appear to move on. Here... (1 Reply)
Discussion started by: Mongrel
1 Replies

5. Shell Programming and Scripting

Script for Parsing Log File

Working on a script that inputs an IP, parses and outputs to another file. A Sample of the log is as follows: I need the script to be able to input IP and print the data in an output file in the following format or something similar: Thanks for any help you can give me! (8 Replies)
Discussion started by: Winsarc
8 Replies

6. UNIX for Dummies Questions & Answers

Parsing log file continuously

Hi i have a log file, which keeps appending, i want to find "exceptions" in that log file and copy those exceptions to another file. i am using grep exception filename >> location where to copy but as the file is appending, am not able to view. i am using tail -f command , ... (5 Replies)
Discussion started by: rchaitanya
5 Replies

7. Shell Programming and Scripting

Log file text parsing

I'm new to scripting and was wondering if there was a way to accomplish what I want below using shell script(s). If there is a log file as follows, where the id is the unique id of a process, with the timestamp of when the process began and completed displayed, would it be possible to find the... (3 Replies)
Discussion started by: dizydolly
3 Replies

8. UNIX for Dummies Questions & Answers

Script for parsing details in a log file to a seperate file

Hi Experts, Im a new bee for scripting, I would ned to do the following via linux shell scripting, I have an application which throws a log file, on each action of a particular work with the application, as sson as the action is done, the log file would vanish or stops updating there, the... (2 Replies)
Discussion started by: pingnagan
2 Replies

9. Shell Programming and Scripting

Help with script parsing a log file

I have a large log file, which I want to first use grep to get the specific lines then send it to awk to print out the specific column and if the result is zero, don't do anything. What I have so far is: LOGDIR=/usr/local/oracle/Transcription/log ERRDIR=/home/edixftp/errors #I want to be... (3 Replies)
Discussion started by: mevasquez
3 Replies

10. Shell Programming and Scripting

Parsing a Log file

Hi All, I'm deffently not a Unix specialist so be Gentel. I need to parse a Log file that looks like that: 2006-06-12 01:00:00,463 ERROR {cleanLoggersFiles} General Error comverse.compas.shared.exceptions.SystemParametersException: Error in reading parameter FileLocation at... (4 Replies)
Discussion started by: tbirenzweig
4 Replies
Login or Register to Ask a Question