Grep two lines at a time


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep two lines at a time
# 1  
Old 03-26-2008
Grep two lines at a time

Hello;

i have a log file which had Invalid, error, missing words in it.
I want to grab a line which matches either of the above words and one more line below the grepped line.

Can this be done?
I looked on other places on your forum, but there is nothing which is working.
I tried following things:

sed -n '/Invalid/ {p; n; p;}' r0035251.rpt <--- But this one does not have a case sensitive as well as multiple pattern matching.

nawk is not available on my system

grep -B <---- again not available.

egrep -i command gives me the matched line, but I am not sure how to combine it with sed to be able to display the next line too!

Can anyone help?

Thanks
Josh
thanks
# 2  
Old 03-26-2008
Code:
awk '/error/ || /Invalid/ {print;getline;print}' file

# 3  
Old 03-26-2008
thanks it works good!
How to add a case sensitive option to it.
i.e.: Want to grab either "Error" or "error"

Thanks much for quick response!
Josh
# 4  
Old 03-26-2008
Code:
awk 'tolower($0) ~ /error/ || tolower($0) ~ /invalid/ {print;getline;print}' file

# 5  
Old 03-26-2008
last one more thing....i want to put this output to a file.
When I use awk..... >> a.log

it does not work.

thanks!
# 6  
Old 03-26-2008
Quote:
Originally Posted by joshjimda
last one more thing....i want to put this output to a file.
When I use awk..... >> a.log

it does not work.

thanks!
Works alright for me...send its output to a.log w/o a problem

Code:
awk 'tolower($0) ~ /error/ || tolower($0) ~ /invalid/ {print;getline;print}' file > a.log

# 7  
Old 03-26-2008
GNUgrep can also do this if you have it installed.

grep -i -A 1 error log.file >a.log

-i case insensitive
-A number of context lines after the found line

other switches that may be useful:

-B number of context lines before the found line
-C number of context lines both before and after the found line
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep three consecutive lines if each lines contains certain string

say we have : 2914 | REQUEST | whatever 2914 | RESPONSE | whatever 2914 | SUCCESS | whatever 2985 | RESPONSE | whatever 2986 | REQUEST | whatever 2990 | REQUEST | whatever 2985 | RESPONSE | whatever 2996 | REQUEST | whatever 2010 | SUCCESS | whatever 2013 | REQUEST | whatever 2013 |... (7 Replies)
Discussion started by: Saumitra Pandey
7 Replies

2. Shell Programming and Scripting

Grep couple of consecutive lines if each lines contains certain string

Hello, I want to extract from a file like : 20120530025502914 | REQUEST | whatever 20120530025502968 | RESPONSE | whatever 20120530025502985 | RESPONSE | whatever 20120530025502996 | REQUEST | whatever 20120530025503013 | REQUEST | whatever 20120530025503045 | RESPONSE | whatever I want... (14 Replies)
Discussion started by: black_fender
14 Replies

3. Shell Programming and Scripting

AWK/GREP: grep only lines starting with integer

I have an input file 12.4 1.72849432773174e+01 -7.74784188610632e+01 12.5 9.59432114416327e-01 -7.87018212757537e+01 15.6 5.20139995965960e-01 -5.61612429666624e+01 29.3 3.76696387248366e+00 -7.42896194101892e+01 32.1 1.86899877018077e+01 -7.56508762501408e+01 35 6.98857157014640e+00... (2 Replies)
Discussion started by: chrisjorg
2 Replies

4. Shell Programming and Scripting

Extracting specific lines of data from a file and related lines of data based on a grep value range?

Hi, I have one file, say file 1, that has data like below where 19900107 is the date, 19900107 12 144 129 0.7380047 19900108 12 168 129 0.3149017 19900109 12 192 129 3.2766666E-02 ... (3 Replies)
Discussion started by: Wynner
3 Replies

5. Shell Programming and Scripting

Perl XML, find matching condition and grep lines and put the lines somewhere else

Hi, my xml files looks something like this <Instance Name="New York"> <Description></Description> <Instance Name="A"> <Description></Description> <PropertyValue Key="false" Name="Building A" /> </Instance> <Instance Name="B"> ... (4 Replies)
Discussion started by: tententen
4 Replies

6. Shell Programming and Scripting

Print lines between two lines after grep for a text string

I have several very large file that are extracts from Oracle tables. These files are formatted in XML type syntax with multiple entries like: <ROW> some information more information </ROW> I want to grep for some words, then print all lines between <ROW> AND </ROW>. Can this be done with AWK?... (7 Replies)
Discussion started by: jbruce
7 Replies

7. Shell Programming and Scripting

AIX equivalent to GNU grep's -B and -A [print lines after or before matching lines]

Hi folks I am not allowed to install GNU grep on AIX. Here my code excerpt: grep_fatal () { /usr/sfw/bin/gegrep -B4 -A2 "FATAL|QUEUE|SIGHUP" } Howto the same on AIX based machine? from manual GNU grep ‘--after-context=num’ Print num lines of trailing context after... (4 Replies)
Discussion started by: slashdotweenie
4 Replies

8. Homework & Coursework Questions

Grep for modified time

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: is it possible to come up with a list of files that are modified before a certain number of hours only using the... (3 Replies)
Discussion started by: momo.reina
3 Replies

9. Shell Programming and Scripting

Grep and delete lines except the lines with strings

Hi I am writing a script which should read a file and search for certain strings 'approved' or 'removed' and retain only those lines that contain the above strings. Ex: file name 'test' test: approved package waiting for approval package disapproved package removed package approved... (14 Replies)
Discussion started by: vj8436
14 Replies

10. Shell Programming and Scripting

grep and fetching lines after grep

suppose i have a file structure(serial file)-- ---------- ---------- --------- summery -------- ------ -------- finished ----- ------- i want to fetch lines from summery to finished i can get line of summery by grep command. but how can i fetch lines untill it reaches finished.probably... (2 Replies)
Discussion started by: arghya_owen
2 Replies
Login or Register to Ask a Question