grepping around


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting grepping around
# 1  
Old 08-24-2007
grepping around

Using shell scripts, I use grep to find the word “error” in a log file:
grep error this.log.
How can I print or get the line 3 lines below the line that word “error” is located?
Thanks in advance for your response.
# 2  
Old 08-24-2007
Quote:
Originally Posted by cbeauty
Using shell scripts, I use grep to find the word “error” in a log file:
grep error this.log.
How can I print or get the line 3 lines below the line that word “error” is located?
Thanks in advance for your response.
Code:
awk 'x&&!--x;/error/{x=3}' file

Use nawk or /usr/xpg4/bin/awk on Solaris.

With sed:

Code:
sed -n '/error/{n;n;n;p;}' file

With shell:

Code:
while read;do case $REPLY in *error*)read;read;read;echo "$REPLY";;esac;done<file


Last edited by radoulov; 08-24-2007 at 03:59 PM.. Reason: sed added
# 3  
Old 08-27-2007
hey please try the following one


grep -A <<n>> <<search pattern>> file_name
grep -B <<n>> <<search pattern>> file_name



NOTE: n is the number of lines you want to traverse before/after the search pattern .
# 4  
Old 08-27-2007
radoulov,
You are very knowledgeable.
nawk 'x&&!--x;/error/{x=3}' file
is what I needed.Smilie
Thank you.
# 5  
Old 08-27-2007
Hi. I am a new user to this site. This is actually my first post.

My question is similar. How can I grep for a particular string and have grep return that string along with the next 10 lines beneath the grepped string? manas_ranjan said to issue grep -A <<n>> <<search pattern>> file_name, but it doesn't look like -A is a grep option on the Solaris 10 box I am trying to run the command on. Smilie I assume I should install the latest version of GNU grep, but I am not an admin of this box, so that is not an option.

Are there alternatives such as awk/nawk or sed? If so, what would the exact commands be?

Thanks you very much in advance. Smilie

- LaLonde
# 6  
Old 08-28-2007
Code:
awk 'c&&c--;/pattern/{c=10;print}' file

Use nawk or /usr/xpg4/bin/awk on Solaris.

Last edited by radoulov; 08-28-2007 at 03:01 AM.. Reason: correction
# 7  
Old 08-28-2007
refer to radoulov's post he has given the example.

heres another alternative

Code:
 sed -n '/1/{n;p;n;p;n;p;n;p;n;p;n;p;n;p;n;p;n;p;n;p;}' test

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grepping and replacing

Hey Friends, Need your help again. I have input.temp file as follows $cat input.temp Lakme|Beauty Products|Lipstick L'Oreal|Hair Care|Conditioner Lakme|Beauty Products|Lip gloss L'Oreal|Hair Care|Mild Shampoo Gala|Beauty Products|Mehndi Cones Lakme|Beauty Products|Eye Shadow... (2 Replies)
Discussion started by: anushree.a
2 Replies

2. Shell Programming and Scripting

Grepping more than one word

Dear Experts, Need your help. Typically we use "grep" to search and display a pattern in a txt file. However, here what we want is, we want to grep a line which contains 4 words any where in a line. For example. File has 10,000,000 lines in it out of which there is a particular line which... (1 Reply)
Discussion started by: anushree.a
1 Replies

3. UNIX for Dummies Questions & Answers

Grepping using -w and dashes (-)

I have a script to sort a list of arbitrary hosts and determine if they are supported by grepping them into a master supported list. I cut all the suffixes of the hosts in the arbitrary list, leaving the "short" hostname if you will, then grep -w them into the master list. For example: ... (1 Reply)
Discussion started by: MaindotC
1 Replies

4. Shell Programming and Scripting

grepping by digit

Hi all, Need your help here. I have a file with thousand of lines, as shown in example below KDKJAA 98324 OIDSAJ 324 KJAJAK 100 KJKAJK 89 JOIJOI 21 JDKDJL 12 UOIUOD 10 UDUYDS 8 UIUHKK 6 I would like to grep using... (5 Replies)
Discussion started by: masterpiece
5 Replies

5. UNIX for Dummies Questions & Answers

grepping between files

Hi I have two files File 1 alias HOME =.. alias DATA = ${DATA}/runtime1/test alias SQL = ${DATA}/find1dir/test alias SQL1 = ${HOME}/sql/orcl alias SQL2 =... (2 Replies)
Discussion started by: ssuresh1999
2 Replies

6. Shell Programming and Scripting

Please help on grepping

Hi All, I have a log file and I want to parse the logfile with a script.A sample text is shown below: I would grep on "return code " on this file. Any idea how the lines above and below the grep patterns could also be extracted. Thanks! nua7 The runLoggingInstall return code is 0... (3 Replies)
Discussion started by: nua7
3 Replies

7. UNIX for Dummies Questions & Answers

grepping columns

Hi All, I was recently helped out 'big time' with my last post on changing multiple file formats (thx, scott1256ca and bakunin)! My new question is about selecting and displaying columns in a file using (possibly) grep. Several of my data files are spreadsheet format (columns separated by... (8 Replies)
Discussion started by: ScKaSx
8 Replies

8. Shell Programming and Scripting

Grepping issue..

I found another problem with my disk-adding script today. When looking for disks, I use grep. When I grep for the following disk sizes: 5242880 I also pick up these as well: 524288000 How do I specifically pick out one or the other, using grep, without resorting to the -v option? ... (9 Replies)
Discussion started by: LinuxRacr
9 Replies

9. UNIX for Dummies Questions & Answers

Grepping for strings

Hello. I have a dir of 1500+ dir. In these dirs is a file host, with a tag <x_tag>. I need to : 1. grep for all dir that contain this host file that contain <x_tag> 2. print a list of these host files containing <x_tag> is this better to egrep this? (5 Replies)
Discussion started by: t4st33@mac.com
5 Replies

10. UNIX for Dummies Questions & Answers

grepping

Is there a way to grep for something and then print out 10 lines after it. for example if I want to grep for a word, then output the following 10 or whatever number of lines after the word. (5 Replies)
Discussion started by: eloquent99
5 Replies
Login or Register to Ask a Question