Print Line above and line below


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print Line above and line below
# 1  
Old 09-21-2011
Print Line above and line below

Hello evryone,

I am looking for a way to print x line above and x line below ...

The idea is : I've got a little script that I am trying to make it universal to read debug log file.

I search for specific error value ( ERROR, Failed, NOK) and so on..., but most of the time more info can be useful above and below the line printed.

I am lookink for a way, in interative script to select value above and below the line printed but I didn't find any post to help me on this.


Like print 2 lines above and 3 lines below the line printed with the word ERROR for exemple ....


I hope, someone will be able to help me. Please I can only user ksh. I can't use Perl.

Thanks in advanced for your help.
# 2  
Old 09-21-2011
Code:
grep -A3 -B2 ERROR file.log

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 09-21-2011
If your grep version doesn't support the -A or -B option you could try something like:
Code:
awk '/ERROR/{print s RS $0; getline; print; next}{s=$0}' file

This User Gave Thanks to Franklin52 For This Post:
# 4  
Old 09-21-2011
Thanks Franklin52 for your help.

I think I will go for your code, but I didn't see where I could configure how many lines above and below ?

But I also have trouble as where I work the log file are huge, it's unbelievable ... I need to be able to filter by date, but I can't see where I could add this varibale on your line code ?

Sorry to not be good enough on this ...

Thanks for your help
# 5  
Old 09-21-2011
Maybe some tool designed to log analysis could help your case? Check Download Splunk for free on your operating system
# 6  
Old 09-21-2011
Thanks Bartus11 for your help, as I can't install anything on the server, I can't try your tool.

Anyway, I will try to work on the codes given, and see ....

Thanks.
# 7  
Old 09-21-2011
Quote:
Originally Posted by Aswex
Thanks Franklin52 for your help.

I think I will go for your code, but I didn't see where I could configure how many lines above and below ?

But I also have trouble as where I work the log file are huge, it's unbelievable ... I need to be able to filter by date, but I can't see where I could add this varibale on your line code ?

Sorry to not be good enough on this ...

Thanks for your help
Here is an example how to print 3 lines above and 4 lines after the pattern:
Code:
awk '$0 ~ s {
  for(i=0;i<b;i++){print arr[(NR+i)%b]}
  for(i=0;i<a;i++){print;getline}
  print;exit
}
{arr[NR%b]=$0}
' b=3 a=4 s="ERROR" file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Reading a file line by line and print required lines based on pattern

Hi All, i want to write a shell script read below file line by line and want to exclude the lines which contains empty value for MOUNTPOINT field. i am using centos 7 Operating system. want to read below file. # cat /tmp/d5 NAME="/dev/sda" TYPE="disk" SIZE="60G" OWNER="root"... (4 Replies)
Discussion started by: balu1234
4 Replies

2. Shell Programming and Scripting

Find line then evaluate text on next line, print when condition is met

Hello, I am looking for a specific situation in a text file. The conditions are, > <CompoundName> InChI=1S/C5H12NO2/c1-5(2)4-8-6(3)7/h5H,4H2,1-3H3/q+1 I am looking for cases where the line "> <CompoundName>" is followed by a line that contains the string "InChI=" without regard to... (5 Replies)
Discussion started by: LMHmedchem
5 Replies

3. UNIX for Beginners Questions & Answers

Output to file print as single line, not separate line

example of problem: when I echo "$e" >> /home/cogiz/file.txt result prints to file as:AA BB CC I need it to save to file as this:AA BB CC I know it's probably something really simple but any help would be greatly appreciated. Thank You. Cogiz (7 Replies)
Discussion started by: cogiz
7 Replies

4. Shell Programming and Scripting

How to print previous line of multiple pattern matched line?

Hello, I have below format log file, Comparing csv_converted_files/2201/9747.1012H67126.5077292103609547345.csv and csv_converted_files/22019/97447.1012H67126.5077292103609547345.csv Comparing csv_converted_files/2559/9447.1012H67126.5077292103609547345.csv and... (6 Replies)
Discussion started by: arvindshukla81
6 Replies

5. Shell Programming and Scripting

Echo printing a line in 2 lines; expected to print in one line

Dear All, fileName: therm.txt nc3h7o2h 7/27/98 thermc 3h 8o 2 0g 300.000 5000.000 1390.000 41 1.47017550e+01 1.71731699e-02-5.91205329e-06 9.21842570e-10-5.36438880e-14 2 -2.99988556e+04-4.93387892e+01 2.34710908e+00 4.34517484e-02-2.65357553e-05 3 ... (7 Replies)
Discussion started by: linuxUser_
7 Replies

6. Shell Programming and Scripting

String search and print next all lines in one line until blank line

Dear all I want to search special string in file and then print next all line in one line until blank lines come. Help me plz for same. My input file and desire op file is as under. i/p file: A1/EXT "BSCABD1_21233G1" 757 130823 1157 RADIO X-CEIVER ADMINISTRATION BTS EXTERNAL FAULT ... (7 Replies)
Discussion started by: jaydeep_sadaria
7 Replies

7. Shell Programming and Scripting

Using regex's from file1, print line and line after matches in file2

Good day, I have a list of regular expressions in file1. For each match in file2, print the containing line and the line after. file1: file2: Output: I can match a regex and print the line and line after awk '{lines = $0} /Macrosiphum_rosae/ {print lines ; print lines } ' ... (1 Reply)
Discussion started by: pathunkathunk
1 Replies

8. Shell Programming and Scripting

Print pipe separated list as line by line in Korn Shell

Korn Shell in AIX 6.1 I want to print the below shown pipe (|) separated list line by line. line=es349889|nhb882309|ts00293|snh03524|bg578835|bg37900|rnh00297|py882201|sg175883 for i in line do echo "Hello $line " done I wanted to execute the above for loop. But i can't even set the... (3 Replies)
Discussion started by: polavan
3 Replies

9. Shell Programming and Scripting

read file line by line print column wise

I have a .csv file which is seperated with (;) inputfile --------- ZZZZ;AAAA;BBB;CCCC;DDD;EEE; YYYY;BBBB;CCC;DDDD;EEE;FFF; ... ... reading file line by line till end of file. while reading each line output format should be . i need to print only specific columns let say 5th... (2 Replies)
Discussion started by: rocking77
2 Replies

10. Shell Programming and Scripting

Compare multiple fields in file1 to file2 and print line and next line

Hello, I have two files that I need to compare and print out the line from file2 that has the first 6 fields matching the first 6 fields in file1. Complicating this are the following restrictions 1. file1 is only a few thousand lines at most and file2 is greater than 2 million 2. I need to... (7 Replies)
Discussion started by: gillesc_mac
7 Replies
Login or Register to Ask a Question