syslog grep/awk/sed display


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting syslog grep/awk/sed display
# 1  
Old 07-19-2010
syslog grep/awk/sed display

What i am trying to do is pull all the "fail" and "error" from the HP-UX syslog except if it includes "sshd" or "ftpd" and IF the next line says "above message repeats NN time" display the next line.


Got some of it working with someones help with sed but Im more familiare with awk.

Trying to do this with awk:

Code:
cat syslog.log | sed -e '/sshd/d' -e '/ftpd/d' -e '/error/b' -e '/fail/b' -e d

I can do half:

Code:
awk '/(error|fail)/ { print; }' syslog.log

I want to add the !/(sshd|ftpd)/ to the awk statement in one statement, if possible.

Then I want to display the next line IF next line contains " above message repeats NN times"

I know how to display next next line:
Code:
awk '/(error|fail)/ { print; getline; print; }' syslog.log

But not sure how to do it ONLY if it contains " above message repeats NN times" and include the !/(sshd|ftpd)/

I know I can do it with multiple greps but I would like an awk one liner.

Last edited by Scott; 07-19-2010 at 12:16 PM.. Reason: Code tags...
# 2  
Old 07-19-2010
Something like this?
Code:
awk '(!/sshd/ && !/ftpd/) && /fail/ || /error/{print; f=1; getline}
/above message repeats/ && f
{f=0}' syslog.log

This User Gave Thanks to Franklin52 For This Post:
# 3  
Old 07-19-2010
Excellent, that s exactly what I was looking for.

I had to add some brackets to get the correct output.

Code:
clear; awk '(!/sshd/ && !/ftpd/) && (/failed/ || /error/) {print; f=1; getline}
/above message repeats/ && f
{f=0}' syslog.log



---------- Post updated at 10:36 AM ---------- Previous update was at 10:36 AM ----------

Ok I've come across a problem... Smilie

Code:
# cat syslog.log
Some error 1
Some error 1
Some error 2
above message repeats 10 times
Some error 3 sshd
Some error 4 ftpd
some error 5 what ever
some error 5 what ever
above message repeats 10 times

When I run the code I get:

Code:
Some error 1
Some error 2
above message repeats 10 times
some error 5 what ever

I should get:
Code:
Some error 1
Some error 1
Some error 2
above message repeats 10 times
some error 5 what ever
some error 5 what ever
above message repeats 10 times.




Last edited by Scott; 07-19-2010 at 01:15 PM.. Reason: Code tags, please!
# 4  
Old 07-19-2010
Sorry, I misunderstood the question, try this:
Code:
awk '(!/sshd/ && !/ftpd/) && (/fail/ || /error/){print; f=1;}
/above message repeats/ && f{print;f=0}' syslog.log

This User Gave Thanks to Franklin52 For This Post:
# 5  
Old 07-19-2010
Yes, awesome.. Thanks again.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep/awk/sed help

got a file as y.txt 1 abc,def,ghj 2 defj,abc.kdm,ijk 3 lmn,cbk,mno 4 tmp,tmop,abc,pkl 5 pri,chk,cbk,lmo 6 def,cbk.pro,abc.kdm i want to search in the above file the key word like abc looking for two outcomes by passing the parameter value as abc into function and the two outocmes are... (6 Replies)
Discussion started by: silgun
6 Replies

2. Shell Programming and Scripting

Grep awk sed display value

Hello all, I wget a file and i tried to display some value : content=$(wget IP:9005/GlobalStatistics -q -O -) echo onlineusers $content > /home/active_session_log #cat active_session_log {"ActiveSessionCount":0,"ActiveGameCount":0,"QueueMatchMakingPlayerCount":0} My goal is write... (7 Replies)
Discussion started by: acidozik
7 Replies

3. Shell Programming and Scripting

Display output as columns using grep/awk/sed

I have several files with say something like cat sparrow I can grep for "cat" and "sparrow" and usually the output is one below the other cat sparrow How can I view these as columns say Pets Birds cat sparrow Would be great if this can be on command line using awk or... (1 Reply)
Discussion started by: gubbu
1 Replies

4. UNIX for Dummies Questions & Answers

grep/awk/sed?

Thread1 { x = 2 y = 10485 } Thread2 { x = 16 y = 1048 } Thread3 { x = 1 y = 1049 } Thread4 { x = 4 y = 1047 z = 500 } Suppose the above is a piece of code. I need to automate and verify that the value of x under Thread1's 2. There are several... (3 Replies)
Discussion started by: foxtron
3 Replies

5. UNIX for Dummies Questions & Answers

awk grep sed or something better

Hello all, Can anyone help with the following? :) I have file1 with 150,000 words in a list and file2 with 148,000 words in a list - all of which are in file1. I want to create a new file with the words that DO NOT match (i.e of 2000 words). I have done this very simple command , which is... (1 Reply)
Discussion started by: dr_sabz
1 Replies

6. UNIX for Dummies Questions & Answers

How could i get this by sed or grep or awk ????

------------------------------------------------------------------ Ex of Warning messgae,(Many similar lines occure for Both Test and Test1) -WARNING:Below Field not implemented in file File name: /home/test/ new/file1, msg buffer is: :Test:000948 ... (1 Reply)
Discussion started by: prsam
1 Replies

7. UNIX for Dummies Questions & Answers

Grep Sed or Awk?

I have two .txt files one called good.txt and the other one is called bad.txt. Both contain email addresses in the following format: john@john.com bob@bob.com sarah@sarah.com Basically, I want to scrub good.txt against bad.txt and save the resulting output in scrubbed.txt meaning that if... (2 Replies)
Discussion started by: holyearth
2 Replies

8. UNIX for Dummies Questions & Answers

Awk, Sed and Grep

Hello. I am an older newbie trying to learn Unix. I have a task to perform and it entails counting lines of code. Currently, I am pointing to the directory where the files are contained and performing a 'find' on the file extensions (cpp, c, html, java, etc.) and piping that info with a 'wc -l'.... (2 Replies)
Discussion started by: mastachef
2 Replies

9. Shell Programming and Scripting

Sed | Awk | Grep

Can someone help me in understanding when to use SED, AWK and GREP (3 Replies)
Discussion started by: kn.naresh
3 Replies

10. Shell Programming and Scripting

need help!!!awk,grep,sed

hi all by using cat /etc/passwd I've got these output. ajh1ect:x:839:501:Anthony:/home/ajh1ect:/bin/bash mjb1ect:x:840:501:Michael:/home/mjb1ect:/bin/bash mv3ect:x:841:501:Marian:/home/mv3ect:/bin/bash now I want to see just the user ID and group ID. so what is the code will be with... (2 Replies)
Discussion started by: nokia1100
2 Replies
Login or Register to Ask a Question