[Solved] Sed/awk print between patterns the first occurrence


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Solved] Sed/awk print between patterns the first occurrence
# 1  
Old 09-13-2011
[Solved] Sed/awk print between patterns the first occurrence

Guys,

I am trying the following:

i have a log file of a webbap which logs in the following pattern:

Code:
2011-08-14 21:10:04,535 blablabla ERROR blablabla
       bla
       bla
      bla
      bla
2011-08-14 21:10:04,535 blablabla ERROR blablabla
       bla
       bla
      bla
      bla
2011-08-14 21:10:04,535 blablabla ERROR blablabla
       bla
       bla
      bla
      bla


what i need is to print everything between the ERROR pattern but only the first occurrence :

Code:
2011-08-14 21:10:04,535 blablabla ERROR blablabla
       bla
       bla
      bla
      bla


Please help!

Last edited by pludi; 09-13-2011 at 08:42 AM..
# 2  
Old 09-13-2011
the example you made is not so clear. timestamps are the same, also those "bla"s.

try this one liner, if it gives your needs:

Code:
awk  '/ERROR/{if(b) exit; else b=1}1'  yourFile

# 3  
Old 09-13-2011
thanks a lot, that's exactly what i needed!

Last edited by vbe; 09-13-2011 at 10:01 AM.. Reason: And so, we can put the thread as Solved...
# 4  
Old 09-14-2011
Alternate solution..
Code:
awk '/ERROR/{++t}t==1' inputfile

# 5  
Old 09-14-2011
Quote:
Originally Posted by michaelrozar17
Alternate solution..
Code:
awk '/ERROR/{++t}t==1' inputfile

this short one-liner looks nice. however it will go through the whole file anyway after getting the part of text we needed.
# 6  
Old 09-15-2011
Hi,

Using 'sed':
Code:
$ cat infile
2011-08-14 21:10:04,535 blablabla ERROR Exception1 blablabla
bla
bla
bla
bla
2011-08-14 21:10:04,535 blablabla ERROR Exteption2 blablabla
bla
bla
bla
bla
2011-08-14 21:10:04,535 blablabla ERROR Exception1 blablabla
bla
bla
bla
bla
2011-08-14 21:10:04,535 blablabla ERROR Exception3 blablabla
bla
bla
bla
$ sed -ne '/ERROR/I,/ERROR/I { H; b }; x; s/^\n//; s/\(.*\)\n.*/\1/; p; q' infile
2011-08-14 21:10:04,535 blablabla ERROR Exception1 blablabla
bla
bla
bla
bla

Regards,
Birei
# 7  
Old 09-15-2011
Thanks!

---------- Post updated at 05:19 PM ---------- Previous update was at 05:12 PM ----------

The above doesnt work as expected. The Exception1 is just an example. This command will run as a script and the pattern is a variable. What i need is to separate the errors and store an example of it in a file. The errors are different so i have to use the description of the error (i.e. Exception1) as a pattern.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed print from last occurrence match until the end of last occurrence match

Hi, i have file file.txt with data like: START 03:11:30 a 03:11:40 b END START 03:13:30 eee 03:13:35 fff END jjjjjjjjjjjjjjjjjjjjj START 03:14:30 eee 03:15:30 fff END ggggggggggg iiiiiiiiiiiiiiiiiiiiiiiii I want the below output START (13 Replies)
Discussion started by: Jyotshna
13 Replies

2. Shell Programming and Scripting

awk to extract and print first occurrence of pattern in each line

I am trying to use awk to extract and print the first ocurrence of NM_ and NP_ with a : before in each line. The input file is tab-delimeted, but the output does not need to be. The below does execute but prints all the lines in the file not just the patterns. Thank you :). file tab-delimeted ... (2 Replies)
Discussion started by: cmccabe
2 Replies

3. UNIX for Dummies Questions & Answers

[Solved] Awk: count occurrence of each character for every field

Hi, let's say an input looks like: A|C|C|D A|C|I|E A|B|I|C A|T|I|B as the title of the thread explains, I am trying to get something like: 1|A=4 2|C=2|B=1|T=1 3|I=3|C=1 4|D=1|E=1|C=1|B=1 i.e. a count of every character in each field (first column of output) independently, sorted... (4 Replies)
Discussion started by: beca123456
4 Replies

4. Shell Programming and Scripting

Print mutliple patterns in a line using sed

Hi, I am trying to print multiple patterns in a line using sed. But it is printing only the last occurance of a pattern. If the line is the the output should be Lookup Procedure|Stored proc But the output I am getting is Stored proc The code I am using is echo... (9 Replies)
Discussion started by: kedar_laveti
9 Replies

5. Shell Programming and Scripting

[Solved] HP-UX awk sub multiple patterns

Hi, I am using sub to remove blank spaces and one pattern(=>) from the input string. It works fine when I am using two sub functions for the same. However it is giving error while I am trying to remove both spaces and pattern using one single sub function. Working: $ echo " OK => " |awk... (2 Replies)
Discussion started by: sai_2507
2 Replies

6. Shell Programming and Scripting

sed print between 2 patterns only last occurence

Hi, I have a file, which contains the following log data. I am trying to print fromt he file the following data: I have tried using sed, but I am getting from the first pattern Thanks for your help. (5 Replies)
Discussion started by: sol_nov
5 Replies

7. UNIX for Dummies Questions & Answers

[SOLVED] awk: matching degenerate patterns

Hi Folks, I have two arrays a: aaa bbb ccc ddd ddd aaa bbb ccc ddd ccc aaa bbb b: aaa bbb ccc aaa ccc bbb bbb aaa ccc ccc bbb aaa I want to compare row by row a(c1:c4) to b(c1:c3). If elements of 'b' match... (5 Replies)
Discussion started by: heecha
5 Replies

8. Shell Programming and Scripting

sed print from last occurrence match until the end of file

Hi, i have file f1.txt with data like: CHECK a b CHECK c d CHECK e f JOB_START .... I want to match the last occurrence of 'CHECK' until the end of the file. I can use awk: awk '/^CHECK/ { buf = "" } { buf = buf "\n" $0 } END { print buf }' f1.txt | tail +2Is there a cleaner way of... (2 Replies)
Discussion started by: ysrini
2 Replies

9. Shell Programming and Scripting

Sed/awk print between different patterns the first occurrence

Thanks for the help yesterday. I have a little modification today, I am trying the following: i have a log file of a webbap which logs in the following pattern: 2011-08-14 21:10:04,535 blablabla ERROR Exception1 blablabla bla bla bla bla 2011-08-14... (2 Replies)
Discussion started by: ppolianidis
2 Replies

10. Shell Programming and Scripting

Sed to print a string until the second occurrence of a character

Hi, I am totally new to shell scripting. I have a String "c:\working\html\index.txt.12-12-2009.bkp" I want to check if the string has more than one "." character. If it does I would like to retrieve only "c:\working\html\index.txt" i.e, discard the second occurrence of "." and the rest of the... (7 Replies)
Discussion started by: imr
7 Replies
Login or Register to Ask a Question