More complicated log parsing


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting More complicated log parsing
# 22  
Old 06-08-2007
Quote:
Originally Posted by sjug
I think a predefined directory would be simpler in the long run, what would the comparison be for array[2] being null?
you can try array[2] == ""
# 23  
Old 06-12-2007
Quote:
Originally Posted by ghostdog74
its not clear why you want to do it in an awk script, but anyway, you can use getline. something like this snippet...
Code:
awk 'BEGIN { 
       if ((getline < "ljalsdfls") == -1) {
            print "not exists"
        } 
 } '

ghostdog, this comparison to not overwrite existing files is not working
my current whole script looks like:

Code:
/HandleRequest.*AService/{  
    if(b=match($0,"xml")) {
      xml=substr($0,b-2)
      # print $0
    }
    else {
      next
    }
         
    n=split($0,line," ")
    m=split(line[5],file,"|")     
      
    if (file[2] ~ /^[0-9]/) {
       filename=file[2]
       
       if ((getline < filename) == -1) {
          n=split(filename,array,"-")
          
          if (array[2] == "") {
            print xml > filename".xml"
          }
          else {
            # print array[2]
            cmd="mkdir -p " array[2] 
            # print cmd
            cmd | getline result
            close(cmd)
            print xml > array[2]"/"filename".xml"
          }
       }
    }
}


Any suggestions?
# 24  
Old 06-12-2007
Quote:
Originally Posted by sjug
this comparison to not overwrite existing files is not working
what is it exactly that is not working? give a description of any errors, strange observations etc etc...
# 25  
Old 06-13-2007
Once again, I apologize for my poor specificity.

Each time the log is parsed, the existing xml files are overwritten.

I would prefer that as soon as the filename is determined while reading through the log, that if the filename already exists then it moves on to the next suitable line without any further parsing of the previous line.

The problem I see with the if statement as it is (that is used to prevent overwriting), is that it does not look in the subdirectories.

How can I adjust the statement, or rearrange the code to fix it, and prevent overwriting existing files?
# 26  
Old 06-13-2007
i am sorry i still couldn't get you. but let me try one last time
this snippet only executes when the file does not yet exists, so if you want to skip when it exists, you can use next:
Code:
    if ((getline < filename) == -1) {
          n=split(filename,array,"-")
          
          if (array[2] == "") {
            print xml > filename".xml"
          }
          else {
            # print array[2]
            cmd="mkdir -p " array[2] 
            # print cmd
            cmd | getline result
            close(cmd)
            print xml > array[2]"/"filename".xml"
          }
       }
       else {
            next
       }

if its still not what you want, maybe you can try the other methods the good ppl here have posted before. And also , you don't really have to do everything in awk if you are not comfortable...using the shell is also fine.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

2. Shell Programming and Scripting

Log parsing

I have a directory with daily logs that have records like this: Date: 04/17/13 Time: 09:29:15 IP: 123.123.123.123 URL: usr/local/file1 and I want to only count how many times each file was accessed (e.g. file1 in that example above), and I want to also look in all the logs in the current... (3 Replies)
Discussion started by: Jaymz
3 Replies

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

4. Shell Programming and Scripting

Log parsing script

Hello, I have a script that parses logs and sends the output via digitally signed and encrypted email. This script uses grep -v to exclude patterns in a file. The problem I have is if this is run via cron none of the pattern matching seems to occur. If I run it by hand it runs exactly as it is... (2 Replies)
Discussion started by: wpfontenot
2 Replies

5. Shell Programming and Scripting

Parsing complicated CSV file with sed

Yes, there is a great doc out there that discusses parsing csv files with sed, and this topic has been covered before but not enough to answer my question (unix.com forums). I'm trying to parse a CSV file that has optional quotes like the following: "Apple","Apples, are fun",3.60,4.4,"I... (3 Replies)
Discussion started by: analog999
3 Replies

6. Shell Programming and Scripting

Perl log parsing help

Hello, I'm sure this is a very simple problem, but I'm having trouble thinking of an efficient way to do the following: given a large centralized ssh-log, one file on a syslog server, not separated by machines (I wish it were), that looks something like this: Sep 27 16:20:56 machine-name... (1 Reply)
Discussion started by: droog72
1 Replies

7. Shell Programming and Scripting

Parsing a Complicated properties file

Hi All, I have a requirement to parse a file. Let me clear you all on the req. I have a job which contains multiple tasks and each task will have multiple attributes that will be in the below format. Each task will have some sequence number according to that sequence number tasks shld... (1 Reply)
Discussion started by: rajeshorpu
1 Replies

8. Shell Programming and Scripting

XML Log Parsing

I have a log file that is around 300 MB of data having continours soap responses as shown below( I have attached only one sample SOAP). I would require to have the following extracted and written onto a new file. timestamp WebPartId bus:block bus:unblock endpt:operation Please help me. ... (3 Replies)
Discussion started by: pk_eee
3 Replies

9. Shell Programming and Scripting

Parsing a large log

I need to parse a large log say 300-400 mb The commands like awk and cat etc are taking time. Please help how to process. I need to process the log for certain values of current date. But I am unbale to do so. (17 Replies)
Discussion started by: asth
17 Replies

10. Shell Programming and Scripting

parsing email log

Can anyone give me some examples of how I can parse the following lines of text so that all characters up to and including the @ symbol are deleted? Also, any duplicates would need to be deleted in order to produce the desired output. Any help is much appreciated and explanations of any... (5 Replies)
Discussion started by: jjamd64
5 Replies
Login or Register to Ask a Question