Awk match a multiline pattern


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk match a multiline pattern
# 15  
Old 10-16-2009
Are you proved this code?

I don't know why, but in the POLITICS, my regexp doesn't work, the code don't show me the politics.

---------- Post updated at 12:34 PM ---------- Previous update was at 11:50 AM ----------

Maybe the problem is because i'm using awk, not nawk?
# 16  
Old 10-16-2009
Quote:
Originally Posted by claw82
Are you proved this code?

I don't know why, but in the POLITICS, my regexp doesn't work, the code don't show me the politics.

---------- Post updated at 12:34 PM ---------- Previous update was at 11:50 AM ----------

Maybe the problem is because i'm using awk, not nawk?
I found it did not work either, but I will leave you to figure out why. It is in the right place though, you just need to get the syntax right.I suggest cutting the expression right back to basics as it probably does not need to be that complex now that the range I defined is getting you into the right area of the file.Good luck
# 17  
Old 10-16-2009
I can't cut the expression, i need the maximum complexity in the expression, because the user can write fine the first part of the expression and bad the second part, and the expression mustn't match.

And i don't know why the expression doesn't works, because y have this expression out of ranges and it works.

I see problems with spaces and tabs.

Thanks!
# 18  
Old 10-16-2009
Debian

I mean break the regular expression down into 3 seperate expressions, one for each line and build each slowly: -

Code:
/POLITICS{/,/}/ {
    if ( $0 ~ /POLITICS{/ ){
        printf("%s\n", "for POLITICS:")
        next
    }
    if( $0 ~ /}/)
        next
    print
  
    if ( $0 ~ /^[0-9]+[%]+[MKGCF]+[\t]+/){
        ## 65%F    mpg     =000M   02/02/02/05/05M
        print "Instructions for 65%"
    }
}

So you end up with three if statements each with a smaller expression, one for each line.

OP for above: -

Code:
for POLITICS:
100MF   doc,docx,xls    <5600K  02/04/02/02/02K
55MF    jpg     >300M   03/03/02/03/05K
65%F mpg =000M 02/02/02/05/05M
Instructions for 65%

Always break the work down into manageable pieces

This subject is now closed........ Smilie
# 19  
Old 10-18-2009
Ok, i understand! i have an error in the *

Thanks so much!!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to combine lines from line with pattern match to a line that ends in a pattern

I am trying to combine lines with these conditions: 1. First line starts with text of "libname VALUE db2 datasrc" where VALUE can be any text. 2. If condition1 is met then continue to combine lines through a line that ends with a semicolon. 3. Ignore case when matching patterns and remove any... (5 Replies)
Discussion started by: Wes Kem
5 Replies

2. Shell Programming and Scripting

Pattern match with awk/sed - help

I need to grep for the pattern text inside the square brackets which are in red and not in green..my current code greps patterns both of them, which i don't want Input fileref|XP_002371341.1| oxoacyl-ACP reductase, putative gb|EPT24759.1| 3-ketoacyl-(acyl-carrier-protein) reductase ... (2 Replies)
Discussion started by: selvankj
2 Replies

3. Shell Programming and Scripting

awk Pattern Match One File to Another

I want to read from file 1 and pattern match in file two and print field two from the next line. File 1: user1 user2 user3 File 2: name=user1 gud=12345 name=user2 gud=32456 I have this pattern hardcoded but can't work out how to pass file 1 to the pattern match: (6 Replies)
Discussion started by: u20sr
6 Replies

4. Shell Programming and Scripting

Using sed to pattern match within a particular multiline block and take action

Hi all, This is my first post, so please go easy if I broke some rules. Not accustomed to posting in forums... :) I'm looking for help on pattern matching within a multiline block and looking to highlight blocks/block-ids that do NOT contain a particular pattern. For example an input file... (5 Replies)
Discussion started by: tirodad
5 Replies

5. Shell Programming and Scripting

Awk to match a pattern and perform a search after the first pattern

Hello Guyz I have been following this forum for a while and the solutions provided are super useful. I currently have a scenario where i need to search for a pattern and start searching by keeping the first pattern as a baseline ABC DEF LMN EFG HIJ LMN OPQ In the above text i need to... (8 Replies)
Discussion started by: RickCharles
8 Replies

6. UNIX for Dummies Questions & Answers

sed multiline pattern match

How can I write a script that takes a cisco config file and outputs every occurrence of two, or more, pattern matches through the whole config file? For example, out of a config file, i want to print out every line with interface, description and ip address through the whole file, and disregard... (3 Replies)
Discussion started by: knownasthatguy
3 Replies

7. Shell Programming and Scripting

AWK match $1 $2 pattern in file 1 to $1 $2 pattern in file2

Hi, I have 2 files that I have modified to basically match each other, however I want to determine what (if any) line in file 1 does not exist in file 2. I need to match column $1 and $2 as a single string in file1 to $1 and $2 in file2 as these two columns create a match. I'm stuck in an AWK... (9 Replies)
Discussion started by: right_coaster
9 Replies

8. Shell Programming and Scripting

Multiline pattern search using sed or awk

Hi friends, Could you please help me to resolve the below issue. Input file :- <Node> <username>abc</username> <password>ABC</password> <Node> <Node> <username>xyz</username> <password>XYZ</password> <Node> <Node> <username>mnp</username> ... (3 Replies)
Discussion started by: haiksuresh
3 Replies

9. Shell Programming and Scripting

Use to awk to match pattern, and print the pattern

Hi, I know how to use awk to search some expressions like five consecutive numbers, , this is easy. However, how do I make awk print the pattern that is been matched? For example: input: usa,canada99292,japan222,france59664,egypt223 output:99292,59664 (6 Replies)
Discussion started by: grossgermany
6 Replies

10. Shell Programming and Scripting

want to pattern match using awk

Hello Friends, My script gives an output like below:- but i only want the red part to be displayed. how to i do that. I am enclosing my shell script after that. id='CCRCWebServerINSTALLDIR' id='AdministrationTools-CINSTALLDIR' id='AdministrationTools-ent-CINSTALLDIR'... (3 Replies)
Discussion started by: asirohi
3 Replies
Login or Register to Ask a Question