AWK - no search results


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK - no search results
# 1  
Old 03-11-2008
AWK - no search results

Hi all,

I'm new to awk and I'm experiencing syntax error that I don't know how to resolve. Hopefully some experts in this forum can help me out.

I created an awk file that look like this:

$ cat myawk.awk
BEGIN {
VAR1=PATTERN1
VAR2=PATTERN2
}

/VAR1/ { flag=1 }
/VAR2/ { flag=0 }
{ if (flag == 1) { print $0 } }

The purpose of this awk file is to accept 2 patterns from the command line and extract sections that is between these 2 patterns. And I'm using this file to search for sections that in between [W] and [I], also [E] and [I]. Therefore, in command line, I set

PATTERN1="^\[.\]" and PATTERN2="^\[I\]" :

$ gawk -v PATTERN1="^\[.\]" -v PATTERN2="^\[W\]" -f myawk.awk < myfile.txt

and I'm not getting any output. However, if I change the awk file to the following:


$ cat myawk_no_input.awk
BEGIN {
^\[.\]=PATTERN1
^\[I\]=PATTERN2
}

/^\[.\]/ { flag=1 }
/^\[I\]/ { flag=0 }
{ if (flag == 1) { print $0 } }

I'll get what I needed. Can anyone please explain to me what have I done wrong in the first version of myawk.awk?

Thanks!
# 2  
Old 03-11-2008
Try this:

Code:
$0 ~ VAR1 { flag=1 }
$0 ~ VAR2 { flag=0 }
{ if (flag == 1) { print $0 } }

instead of:

Code:
/VAR1/ { flag=1 }
/VAR2/ { flag=0 }
{ if (flag == 1) { print $0 } }

The BEGIN section isn't necessary.

Regards
# 3  
Old 03-11-2008
Thanks for reply, Franklin.

I tried, it doesn't work. I don't think I tried $1 instead of $0 because each lines is a big long sentence.

Any other thoughts?

Thanks!
# 4  
Old 03-11-2008
It should be easier if you post a part of the file and the patterns you're searching for.

Regards
# 5  
Old 03-11-2008
I just attach the text file to this thread (for readability).

What I would like to do is extract all the information for warnings ([W]) and errors ([E]).

Thanks again.
# 6  
Old 03-11-2008
It should work if you define the patterns as follow:

Code:
gawk -v PATTERN1="^\[E\]" -v PATTERN2="^\[W\]" -f myawk.awk < myfile.txt

myawk.awk should looks like:

Code:
$0 ~ PATTERN1 || $0 ~ PATTERN2 { print }

Regards
# 7  
Old 03-11-2008
I tried what you suggested and here are the errors I received:

gawk: warning: escape sequence `\[' treated as plain `['
gawk: warning: escape sequence `\]' treated as plain `]'
gawk: getpara.awk:1: each rule must have a pattern or an action part

Also, I think by doing

$0 ~ PATTERN1 || $0 ~ PATTERN2 { print }

it will only print out the line with [W] & [E] labels and ignore and information following the lines.
Login or Register to Ask a Question

Previous Thread | Next Thread

6 More Discussions You Might Find Interesting

1. What is on Your Mind?

Search Results are Now Responsive (Live)

Hey, It took me nearly 10 hours of work, but the forum search results are now fully responsive using CSS Flex and jQuery. By search results, I mean forum searches (not man page searches). Searches we do every day like: "Todays Posts", "New Topics", it's done! I have tested it and it... (0 Replies)
Discussion started by: Neo
0 Replies

2. What is on Your Mind?

Search Results (Search, New, and Today's Topics) Animation Switch

Hey, I added an animation switch on the search results page; so by default the thread previews are off, but if you want to look at them, just click on the green button and the thread previews will turn on (and back off). See image and attached animation: ... (1 Reply)
Discussion started by: Neo
1 Replies

3. Shell Programming and Scripting

Finding files with the name of the results of another search

Dear All, I have a file with this name= xx-nnnn.csv , I has texts in this format, 231048975938093056;234317862284705793;609384034;14955353;1344700706000;1; 231048975938093056;234317958632054785;715450794;52422878;1344700729000;1;... (10 Replies)
Discussion started by: davidfreed
10 Replies

4. Shell Programming and Scripting

Gawk Narrowing Down Search Results

I am using GAWK to search for a specific pattern: gawk '{IGNORECASE=1;} /<a href=/&&/\$/,/<\/a/' index.html <a class=author href="http://washingtondc.craigslist.org/search/?areaID=10&amp;amp;catAbb=sss&amp;amp;query=ps vita" title="craigslist washington, DC | all fo r sale / wanted search &quot;ps... (1 Reply)
Discussion started by: metallica1973
1 Replies

5. Shell Programming and Scripting

Can ctag and cscope support recording search results and displaying the history results ?

Hello , When using vim, can ctag and cscope support recording search results and displaying the history results ? Once I jump to one tag, I can use :tnext to jump to next tag, but how can I display the preview search result? (0 Replies)
Discussion started by: 915086731
0 Replies

6. Shell Programming and Scripting

Operations on search results

Hi, I am a newbie at Unix scritping, and I have a question. Looking at the search functionality on Unix. Here I have a structure root---------dir1 ------- file1, file2, file3 |_____dir2 ______file1@, file4 |_____dir3_______file1@, file5 Under root directory, I... (4 Replies)
Discussion started by: nj302
4 Replies
Login or Register to Ask a Question